10.3. 命令行参数

通用实用程序脚本通常需要处理命令行参数。这些参数作为列表存储在 sys 模块的 argv 属性中。例如,以下输出来自在命令行运行 python demo.py one two three

  1. >>> import sys
  2. >>> print(sys.argv)
  3. ['demo.py', 'one', 'two', 'three']

argparse 模块提供了一种更复杂的机制来处理命令行参数。 以下脚本可提取一个或多个文件名,并可选择要显示的行数:

  1. import argparse
  2. parser = argparse.ArgumentParser(prog = 'top',
  3. description = 'Show top lines from each file')
  4. parser.add_argument('filenames', nargs='+')
  5. parser.add_argument('-l', '--lines', type=int, default=10)
  6. args = parser.parse_args()
  7. print(args)

当在通过 python top.py --lines=5 alpha.txt beta.txt 在命令行运行时,该脚本会将 args.lines 设为 5 并将 args.filenames 设为 ['alpha.txt', 'beta.txt']