Python从命令行传递值
我想将一个值传递到python脚本中,如下图所示 其中,xyz是我的python文件,它需要abc值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)是命令行参数的数量 例如: 考虑下面的脚本测
如何执行此操作并访问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:很抱歉回复晚了,请看一下这个和这个,我希望这能有所帮助。