如何访问命令行参数?
我用Python来创建我的项目设置,但我需要帮助来获取命令行参数。
我在终端上试过这个:
$python myfile.py var1 var2 var3
在我的Python文件中,我想使用所有输入的变量。
11 个回答
243
获取仅仅命令行参数
(不包括Python文件的名称)
import sys
sys.argv[1:]
这里的[1:]
是一个切片操作,从第二个元素(索引1)开始,一直到参数列表的最后一个元素。这样做是因为第一个元素是Python文件的名称,我们想把它去掉。
270
我非常推荐使用argparse
这个模块,它是Python 2.7及以后的版本自带的。
argparse
模块可以减少你写代码时的重复工作,让你的代码更可靠。因为这个模块会处理所有常见的使用场景(包括子命令),还会自动生成帮助信息和使用说明,检查和清理用户输入——这些都是你在使用sys.argv
方法时需要自己操心的事情。而且它是免费的(内置的)。
这里有一个小例子:
import argparse
parser = argparse.ArgumentParser("simple_example")
parser.add_argument("counter", help="An integer will be increased by 1 and printed.", type=int)
args = parser.parse_args()
print(args.counter + 1)
然后运行python prog.py -h
的输出结果是:
usage: simple_example [-h] counter
positional arguments:
counter counter will be increased by 1 and printed.
optional arguments:
-h, --help show this help message and exit
运行python prog.py 1
的输出结果是,正如你所期待的那样:
2
871
import sys
print(sys.argv)
更具体来说,如果你运行 python example.py one two three
:
>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']