当前位置: 首页 > news >正文

Python 命令行解析

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

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

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/
http://www.jsqmd.com/news/769945/

相关文章:

  • 基于 Taotoken 构建支持多模型切换的智能内容创作平台
  • 2026年新疆票据印刷、不干胶标签及办公用纸采购完全指南:从源头直供到政企合规的一站式解决方案 - 企业名录优选推荐
  • Wand-Enhancer完全指南:三步解锁WeMod高级功能的终极方案
  • #2026最新高性价比纯粮口粮酒公司推荐!国内优质权威榜单发布,性价比拉爆四川泸州等地公司值得选 - 十大品牌榜
  • #2026最新白酒核心产区原酒公司推荐!国内权威榜单发布,实力靠谱四川泸州等地企业值得信赖 - 十大品牌榜
  • 2026 南京彩钢瓦金属屋面厂房防水防腐公司排名|5 家正规防水防腐企业推荐 + 避坑攻略 - 速递信息
  • 移液管推荐供应商深度测评:浙江镕达生物安进特产品全解析 - 品牌推荐大师1
  • 2026最新彩盒印刷公司推荐!国内优质权威榜单发布,实力靠谱广东佛山等地公司首选 - 十大品牌榜
  • 2026 滁州墙面刷新|旧房改造・局部装修 5 家正规企业排行 + 避坑攻略 - 速递信息
  • 18类户外生活垃圾检测数据集(3000张)|YOLO训练数据集 智慧环卫 户外垃圾识别 城市治理 环境监测
  • Windows安卓应用安装终极指南:APK-Installer完整使用教程
  • 基于Azure Cosmos DB与OpenAI构建企业级RAG智能问答应用实战
  • STM32F407示波器项目避坑指南:DMA+定时器触发ADC的配置要点
  • PulseAudio 与 PipeWire
  • 材质合规+智能节能:2026年高品质不锈钢水箱的7个优选品牌 - 深度智识库
  • 手把手教你用Hadoop MapReduce清洗电信通话记录(附完整代码与数据)
  • 5分钟快速掌握SharpKeys:Windows键盘重映射终极免费指南
  • 2026酒店宾馆回收怎么选?正规靠谱回收厂家硬核甄选TOP5 - 深度智识库
  • Gitleaks实战:Git仓库敏感信息检测与CI/CD安全集成指南
  • yolov5实现火焰识别/检测步骤记录
  • Emby.CustomCssJS:深度定制你的媒体服务器界面架构
  • GetQzonehistory终极指南:3分钟永久备份你的QQ空间所有历史记录
  • 新疆政企客户必读:2026年绿色认证票据印刷、不干胶标签全区域采购攻略 - 企业名录优选推荐
  • 面试官最爱问的图遍历:BFS在LeetCode「岛屿数量」和「打开转盘锁」中的实战拆解
  • 从‘能用’到‘好用’:NanoDet-Plus的AGM训练辅助模块,到底给轻量模型带来了什么?
  • 天河海珠白云单位搬迁必看!三家老牌搬家公司,办公家具拆装专业又靠谱 - 广州搬家老班长
  • C#使用SHA256withRSA加密对接口进行访问
  • Gaspol项目是韭菜盘吗?2026年深度解析其运作模式与市场前景 - GrowthUME
  • BthPS3蓝牙驱动:Windows上完美连接PS3控制器的终极解决方案
  • 不只是boot.img:用AIK和Magisk Boot工具无损修改Android启动镜像的完整指南