如何通过bash将参数传递给Python脚本
我该如何在从Bash运行Python脚本时传递参数呢?
python somepythonfile.py arg1 arg2
3 个回答
1
使用 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]
1
就像你说的那样。你可以通过 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']
- 参数 0 (
sys.argv[0]
) 是脚本的名字 - 参数 1 到 参数 N (
sys.argv[1]
...sys.argv[N]
) 是传入的参数
这段内容是从 这个例子中直接拿来的。
1
正如其他人提到的,你可以通过 sys.argv
来直接获取命令行参数。
如果你想更复杂地处理这些参数,特别是当你在写一个命令行脚本时,可以看看 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