如何访问命令行参数?

667 投票
11 回答
690391 浏览
提问于 2025-04-16 06:10

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

我在终端上试过这个:

$python myfile.py var1 var2 var3

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

11 个回答

243

获取仅仅命令行参数

(不包括Python文件的名称)

import sys

sys.argv[1:]

这里的[1:]是一个切片操作,从第二个元素(索引1)开始,一直到参数列表的最后一个元素。这样做是因为第一个元素是Python文件的名称,我们想把它去掉。

270

我非常推荐使用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
871

Python教程里有详细解释

import sys

print(sys.argv)

更具体来说,如果你运行 python example.py one two three

>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']

撰写回答