Answers:
import sys
print(sys.argv)
更具体地说,如果您运行python example.py one two three
:
>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']
import sys
sys.argv[1:]
将为您提供参数列表(不包括python文件的名称)
[1:]
意思
[1:]
向上,因为sys.argv
默认情况下,第一个参数是您正在运行的python文件的名称testrun.py
。
我强烈建议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
parser.add_argument('var3', nargs='?', type=int, default=3)
var3是可选参数,如果您未在命令行中指定值,则可以在代码中访问var3,var3的默认值= 3
我可以想到的一些其他事项。
正如@allsyed所说,sys.argv提供了一个组件列表(包括程序名称),因此,如果您想知道通过命令行传递的元素数量,可以使用len()来确定它。基于此,如果用户未传递特定数量的参数,则可以设计异常/错误消息。
另外,如果您正在寻找一种更好的方式来处理命令行参数,我建议您查看https://docs.python.org/2/howto/argparse.html