我使用python创建我的项目设置设置,但我需要帮助获取命令行参数。

我在终端上试了一下:

$python myfile.py var1 var2 var3

在我的Python文件中,我想使用所有输入变量。


当前回答

我强烈推荐Python 2.7及更高版本附带的argparse。

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的输出。

2

其他回答

应该使用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 myfile.py var1 var2 var3

import sys

var1 = sys.argv[1]
var2 = sys.argv[2]
var3 = sys.argv[3]

与数组类似,还有sys。Argv[0],它总是当前工作目录。

我强烈推荐Python 2.7及更高版本附带的argparse。

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的输出。

2

仅获取命令行参数

(不包括Python文件的名称)

import sys

sys.argv[1:]

[1:]是从第二个元素(索引1)开始的切片,一直到参数列表的末尾。这是因为第一个元素是Python文件的名称,我们想要删除它。