我使用python创建我的项目设置设置,但我需要帮助获取命令行参数。
我在终端上试了一下:
$python myfile.py var1 var2 var3
在我的Python文件中,我想使用所有输入变量。
我使用python创建我的项目设置设置,但我需要帮助获取命令行参数。
我在终端上试了一下:
$python myfile.py var1 var2 var3
在我的Python文件中,我想使用所有输入变量。
当前回答
应该使用sys(系统)模块。 参数具有STR类型,并且在数组中
注意:argv不是函数或类,它是变量,可以更改
注意:argv[0]为文件名
注意:因为python用c编写,c有main(int argc, char *argv[]);但是sys module中的argc不存在
注意:sys模块被命名为System,用C语言写的,不是一个基于SOURCE的模块
from sys import argv # or
from sys import * # or
import sys
# code
print("is list") if type(sys.argv) == list else pass # is list ,or
print("is list") if type(argv) == list else pass # is list
# arguments are str ( string )
print(type(sys.argv[1])) # str
# command : python filename.py 1 2 3
print(len(sys.argv)) # 3
print(sys.argv[1],'\n',sys.argv[2]'\n',sys.argv[3]) # following
'''
1
2
3
'''
# command : python filename.py 123
print(len(sys.argv)) # 1
print(sys.argv[1]) # following
'''
123
'''
其他回答
Python教程解释它:
import sys
print(sys.argv)
更具体地说,如果运行python example.py one two three:
>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']
仅获取命令行参数
(不包括Python文件的名称)
import sys
sys.argv[1:]
[1:]是从第二个元素(索引1)开始的切片,一直到参数列表的末尾。这是因为第一个元素是Python文件的名称,我们想要删除它。
你可以使用sys。Argv以列表形式获取参数。
如果需要访问单个元素,可以使用
sys.argv[i]
其中I是index, 0会给你正在执行的python文件名。之后的任何索引都是传递的参数。
你可以使用"argparse"通过键访问参数。
假设我们有这样的命令:
python main.py --product_id 1001028
要访问参数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)
输出:
1001028
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