所谓“命令行参数”就是在命令行中执行文件的时候同时给该文件传递一些参数。命令行参数是参数化程序执行的一种常见且简单的方法下面主要介绍几种常见的获取和解析命令行参数的方法。1. argvimport sys import os if __name__ __main__: if len(sys.argv) 3: logger.error(Usage: python3 main.py [workspace directory] [task flow]) exit(-1) else: workspace_directory sys.argv[1] task_flow int(sys.argv[2]) exit(0)2. getopt一种简单的命令行解析方法# !/usr/bin/python3 # coding: utf-8 import sys import getopt try: opts, args getopt.getopt(sys.argv[1:], i:o:f:D:) except getopt.GetoptError: sys.exit(2) for opt, arg in opts: if opt -i: # do something elif opt -o: # do something elif opt -f: # do something elif opt -D: # do something else: # do nothing3. argparse一种复杂的命令行解析方式import argparse def parse_args(): parser argparse.ArgumentParser(descriptionextractor data!) parser.add_argument(input_file, typestr, helppath to image (png, jpeg, etc.)) parser.add_argument(--record_path, typestr, default, helpExtracted file absolute path) parser.add_argument(--save_path, typestr, default, helpExtraced file) parser.add_argument(-p, --path, helpThe path to search for files, requiredTrue, destpath) args parser.parse_args() return args if __name__ __main__: args parse_args() print(args.record_path)注意其中有三种写法不带杠在上述示例中input_file就是一个不带-前缀的参数。运行脚本时直接在命令行中指定该参数的值例如python script.py file.txt运行之后input_file的值就是file.txt单杠单杠后面只能接一个字母python script.py -p /path/data/双杠双杠后面可以接多个字母python script.py --path /path/data/