Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python从命令行传递值_Python - Fatal编程技术网

Python从命令行传递值

Python从命令行传递值,python,Python,我想将一个值传递到python脚本中,如下图所示 其中,xyz是我的python文件,它需要abc值 如何执行此操作并访问xyz.py中的abc值?您可以这样尝试 #!/usr/bin/python import sys print 'Argument List:', str(sys.argv) Python sys模块通过sys.argv提供对任何命令行参数的访问。这有两个目的: sys.argv是命令行参数的列表 len(sys.argv)是命令行参数的数量 例如: 考虑下面的脚本测

我想将一个值传递到python脚本中,如下图所示

其中,xyz是我的python文件,它需要abc值


如何执行此操作并访问xyz.py中的abc值?

您可以这样尝试

#!/usr/bin/python

import sys

print 'Argument List:', str(sys.argv)

Python sys模块通过sys.argv提供对任何命令行参数的访问。这有两个目的:

sys.argv是命令行参数的列表

len(sys.argv)是命令行参数的数量

例如: 考虑下面的脚本测试.PY:

#!/usr/bin/python

import sys

print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
现在按如下方式运行上述脚本:

$ python test.py arg1 arg2 arg3
这将产生以下结果:

Number of arguments: 4 arguments.
Argument List: ['test.py', 'arg1', 'arg2', 'arg3']

您可以使用
sys.argv
,但更好的方法是使用模块

这里有一个例子

#!/usr/bin/python

import argparse

parser = argparse.ArgumentParser(prog='reader', description='Read commandline value.')
parser.add_argument('-v', '--value')
args = parser.parse_args()
print "Value you entered: %s" % args.value

在用户导入sys之前,你应该使用
str(sys.argv)
,为什么argparse是一个更好的方法?请你解释一下好吗?@Zedai:很抱歉回复晚了,请看一下这个和这个,我希望这能有所帮助。