首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中将变量名作为命令行参数进行传递

在python中将变量名作为命令行参数进行传递
EN

Stack Overflow用户
提问于 2021-09-30 05:05:00
回答 3查看 278关注 0票数 1

我希望用户使用命令行输入参数,并在命令行中输入变量名。

例如,

代码语言:javascript
复制
python test.py a=10 b=20

代码应该能够在需要的任何地方使用a=10和b=10。

我能够实现python test.py 10 20,但不是上面给出的东西。我想知道在python中这是否可能?

EN

回答 3

Stack Overflow用户

发布于 2021-09-30 05:10:59

您可以使用sysgetopt以类似于在C中检查命令行参数的方式来完成此操作。您可以通过阅读文档here来了解这是否是适合您的用例的正确选择。

票数 0
EN

Stack Overflow用户

发布于 2021-09-30 05:12:45

您不能从命令行直接赋值变量,但是来自sys模块的sys.argv将返回所有命令行参数的列表。因此,您可以传递这些值,然后在程序的第一行中指定它们,如下所示。

代码语言:javascript
复制
import sys
# expect program to be run with "python test.py 10 20"
file_name = sys.argv[0] # this will be "test.py" in our example
a = sys.argv[1] # this will be 10
b = sys.argv[2] # this will be 20

有关此主题的更多详细信息,请参阅本文。https://www.geeksforgeeks.org/how-to-use-sys-argv-in-python/

票数 0
EN

Stack Overflow用户

发布于 2021-09-30 05:48:28

你可以这样做(非常麻烦):

代码语言:javascript
复制
import sys

def assign_variable_dynamically(expression):
    var_name, value = expression.split("=")
    globals()[var_name] = value

# for the following run: python test.py a=10 b=20
# you will get:
assign_variable_dynamically(sys.argv[1]) 
assign_variable_dynamically(sys.argv[2])
print(a)  # output: 10
print(b)  # output: 20
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69386432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档