Python 参数输入

Python 也有类似 C 语言中 main 函数读取命令行参数的功能。在 Python 中,可以通过 sys 模块来获取命令行参数。sys.argv 是一个包含命令行参数的列表,其中第一个元素 sys.argv[0] 是脚本的名称,后续的元素是传递给脚本的参数。

1 示例代码

以下是一个简单的示例,展示了如何在 Python 中读取和处理命令行参数:

1
2
3
4
5
6
7
8
9
10
import sys    

def main():

str_arg = sys.argv
print("The first argument is:", str_arg[0])
for i in range(1, len(str_arg)):
print("The", i, "argument is:", str_arg[i])

main()

2 运行示例

假设你将上述代码保存为 example.py,然后在命令行中运行:

1
python example.py arg1 arg2 arg3

输出将会是:

1
2
3
4
Script name: example.py
Argument 1: arg1
Argument 2: arg2
Argument 3: arg3

3 更多高级用法

如果你需要更复杂的命令行参数解析,可以使用 argparse 模块,它提供了更强大的命令行参数解析功能。

3.1 示例代码使用 argparse

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import argparse

def main():
parser = argparse.ArgumentParser(description="Process some integers.")
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')

args = parser.parse_args()

print(f"Integers: {args.integers}")
print(f"Result: {args.accumulate(args.integers)}")

if __name__ == "__main__":
main()

4 运行示例

1
python example.py 1 2 3 4 --sum

输出将会是:

1
2
Integers: [1, 2, 3, 4]
Result: 10

5 详细说明

  • argparse.ArgumentParser:创建一个解析器对象。
  • add_argument:定义命令行参数。
    • 'integers':位置参数,必须提供。
    • metavar='N':参数的别名。
    • type=int:参数类型。
    • nargs='+':表示可以接受一个或多个参数。
    • help:参数的帮助信息。
  • --sum:可选参数,用于指定累加操作。
  • args.accumulate(args.integers):根据 --sum 参数的值,选择累加或取最大值。