Par*_*ser 328 python command-line
我使用python来创建我的项目设置设置,但我需要帮助获取命令行参数.
我在终端试了这个:
$python myfile.py var1 var2 var3
Run Code Online (Sandbox Code Playgroud)
在我的Python文件中,我想使用所有输入的变量.
Sil*_*ost 454
import sys
print(sys.argv)
Run Code Online (Sandbox Code Playgroud)
更具体地说,如果您运行python example.py one two three
:
>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']
Run Code Online (Sandbox Code Playgroud)
Rya*_*ley 105
import sys
sys.argv[1:]
Run Code Online (Sandbox Code Playgroud)
会给你一个参数列表(不包括python文件的名称)
Mic*_*ner 85
我强烈推荐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)
Run Code Online (Sandbox Code Playgroud)
和输出 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
Run Code Online (Sandbox Code Playgroud)
和python prog.py 1
你所期望的:
2
Run Code Online (Sandbox Code Playgroud)
Cha*_* P. 51
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
Run Code Online (Sandbox Code Playgroud)
调用:
$python myfile.py var1 var2 var3
Run Code Online (Sandbox Code Playgroud)
输出:
Params= var1 var2 var3
Run Code Online (Sandbox Code Playgroud)
all*_*yed 22
您可以使用sys.argv
将参数作为列表来获取.
如果您需要访问单个元素,则可以使用
sys.argv[i]
Run Code Online (Sandbox Code Playgroud)
where i
是index,0
它将为您提供正在执行的python文件名.之后的任何索引都是传递的参数.
Moh*_*day 20
您可以使用“argparse”按键访问参数。
假设我们有这个命令:
python main.py --product_id 1001028
Run Code Online (Sandbox Code Playgroud)
要访问参数product_id,我们需要先声明它,然后获取它:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--product_id', dest='product_id', type=str, help='Add product_id')
args = parser.parse_args()
print (args.product_id)
Run Code Online (Sandbox Code Playgroud)
输出:
1001028
Run Code Online (Sandbox Code Playgroud)
小智 6
首先,您需要导入sys
sys - 系统特定的参数和函数
该模块提供对解释器使用和维护的某些变量以及与解释器强烈交互的函数的访问。该模块仍然可用。如果该模块不再工作,我将编辑这篇文章。
然后,您可以打印参数的数量或您想要的参数列表。
请按照以下脚本操作:
#!/usr/bin/python
import sys
print 'Number of arguments entered :' len(sys.argv)
print 'Your argument list :' str(sys.argv)
Run Code Online (Sandbox Code Playgroud)
然后,运行你的 python 脚本:
$ python arguments_List.py chocolate milk hot_Chocolate
Run Code Online (Sandbox Code Playgroud)
您将得到您所要求的结果:
Number of arguments entered : 4
Your argument list : ['arguments_List.py', 'chocolate', 'milk', 'hot_Chocolate']
Run Code Online (Sandbox Code Playgroud)
希望对某人有所帮助。
小智 5
如果你这样称呼它: $ python myfile.py var1 var2 var3
import sys
var1 = sys.argv[1]
var2 = sys.argv[2]
var3 = sys.argv[3]
Run Code Online (Sandbox Code Playgroud)
与数组类似,您也拥有sys.argv[0]
始终是当前工作目录的数组.
我能想到的一些额外的事情。
正如@allsyed 所说 sys.argv 给出了一个组件列表(包括程序名称),所以如果你想知道通过命令行传递的元素数量,你可以使用 len() 来确定它。基于此,如果用户没有传递特定数量的参数,您可以设计异常/错误消息。
另外,如果您正在寻找处理命令行参数的更好方法,我建议您查看https://docs.python.org/2/howto/argparse.html
归档时间: |
|
查看次数: |
287428 次 |
最近记录: |