问题:如何在Python中访问命令行参数?
我使用python创建我的项目设置设置,但我需要获取命令行参数的帮助。
我在终端上尝试了这个:
$python myfile.py var1 var2 var3
在我的Python文件中,我想使用所有输入的变量。
回答 0
import sys
print(sys.argv)
更具体地说,如果您运行python example.py one two three
:
>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']
回答 1
import sys
sys.argv[1:]
将为您提供参数列表(不包括python文件的名称)
回答 2
我强烈建议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
回答 3
Python代码:
import sys
# main
param_1= sys.argv[1]
param_2= sys.argv[2]
param_3= sys.argv[3]
print 'Params=', param_1, param_2, param_3
调用:
$python myfile.py var1 var2 var3
输出:
Params= var1 var2 var3
回答 4
您可以使用 sys.argv
用来获取参数列表。
如果您需要访问各个元素,则可以使用
sys.argv[i]
i
索引在哪里,0
将为您提供正在执行的python文件名。之后的任何索引都是传递的参数。
回答 5
如果您这样称呼它: $ python myfile.py var1 var2 var3
import sys
var1 = sys.argv[1]
var2 = sys.argv[2]
var3 = sys.argv[3]
与数组类似,您也拥有sys.argv[0]
始终是当前工作目录的数组。
回答 6
我可以想到的一些其他事项。
正如@allsyed所说,sys.argv提供了一个组件列表(包括程序名称),因此,如果您想知道通过命令行传递的元素数量,可以使用len()来确定它。基于此,如果用户未传递特定数量的参数,则可以设计异常/错误消息。
另外,如果您正在寻找一种更好的方式来处理命令行参数,我建议您查看https://docs.python.org/2/howto/argparse.html
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。