【发布时间】:2014-12-25 16:06:08
【问题描述】:
从 Bash 运行 python 脚本时如何将参数传递给它?
python somepythonfile.py arg1 arg2
【问题讨论】:
-
您提供的命令有什么问题?
-
args 被视为我传递给 python 的一部分。我需要从脚本中访问的 args。
从 Bash 运行 python 脚本时如何将参数传递给它?
python somepythonfile.py arg1 arg2
【问题讨论】:
正如其他人所指出的,您可以通过 sys.argv 获得对 args 的原始访问权限
对于更复杂的参数处理,如果制作命令行脚本,您可能需要查看 argparse 模块:
https://docs.python.org/2/library/argparse.html#module-argparse
(来自文档...)
例如,考虑一个名为myprogram.py 的文件,其代码如下:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--foo', help='foo help')
args = parser.parse_args()
从命令行:
$ python myprogram.py --help
usage: myprogram.py [-h] [--foo FOO]
optional arguments:
-h, --help show this help message and exit
--foo FOO foo help
【讨论】:
正是你所拥有的。您可以通过sys.argv访问它们
#!/usr/bin/python
import sys
print 'Number of arguments:', len(sys.argv), 'arguments.'
print 'Argument List:', str(sys.argv)
输出:
Number of arguments: 3 arguments
Argument List: ['somepythonfile.py', 'arg1', 'arg2']
sys.argv[0]) 是脚本的名称sys.argv[1] ... sys.argv[N]) 是传递的参数无耻地取自this example。
【讨论】:
使用 sys.argv,它是一个包含传递给脚本的参数以及文件名的列表。
# test_prog.py
from sys import argv
print argv[0] # test_prog.py
if len(argv) > 1: # check that we have at least 1 argument
print argv[1]
【讨论】: