Python 命令行解析
2026/5/7 11:57:23 网站建设 项目流程

所谓“命令行参数”就是:在命令行中执行文件的时候同时给该文件传递一些参数。

命令行参数是参数化程序执行的一种常见且简单的方法,下面主要介绍几种常见的获取和解析命令行参数的方法。

1. argv

import 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 nothing

3. argparse

一种复杂的命令行解析方式

import argparse def parse_args(): parser = argparse.ArgumentParser(description="extractor data!") parser.add_argument('input_file', type=str, help="path to image (png, jpeg, etc.)") parser.add_argument('--record_path', type=str, default='', help='Extracted file absolute path') parser.add_argument('--save_path', type=str, default='', help='Extraced file') parser.add_argument('-p', '--path', help='The path to search for files', required=True, dest='path') 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/

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询