Python 命令行参数化的几种方式

【参数化】使用Python实现参数化 参数化 阅读详情

1. 前言

在日常编写 Python 脚本的过程中,我们经常需要结合命令行参数传入一些变量参数,使项目使用更加的灵活方便

本篇文章我将罗列出构建 Python 命令行参数的 4 种常见方式

它们分别是:

  • 内置 sys.argv 模块
  • 内置 argparse 模块
  • 内置 getopt 模块
  • 第三方依赖库 click

2. sys.argv

构建命令行参数最简单、常见的方式是利用内置的「 sys.argv 」模块

它是将参数以一个有序的列表传入,所以在使用时传参顺序必须固定

因此,这种方式适用于参数个数少且场景固定的项目中

import sys

if __name__ == '__main__':
    # 获取参数列表
    # 注意:sys.argv[0] 代表第一个参数,即:脚本名称「1_sys.argv.py」
    # 其他参数列表
    args = sys.argv[1:]

    # 参数个数
    args_length = len(sys.argv) if sys.argv else 0

    print("排除运行主文件参数,其他参数列表为:", args)

    print("参数总数:", args_length)

# 使用
# python3 1_sys.argv.py arg1 arg2
# 排除运行主文件参数,其他参数列表为: [arg1, arg1]
# 参数总数:3

需要注意的是,在脚本中通过「 sys.argv 」获取的参数列表中,第一个参数代表脚本主文件名称

3. argparse

内置的 argparse 模块可以非常轻松地编写出友好的命令行参数脚本,并且它能自动生成帮助使用手册,在用户给程序传入无效参数时能抛出清晰的错误信息

官方文档:

https://docs.python.org/zh-cn/3.10/library/argparse.html

使用它构建命令行参数包含 3 个步骤:

构建参数解析对象添加参数添加参数解析参数
3-1  构建命令行参数解析对象
import argparse

...
# 构建一个命令行参数解析对象
parser = argparse.ArgumentParser(description='命令行参数')
...
3-2  添加命令行参数
需要指出的是,--arg1 用于指定参数名称,-a1 代表 dest 目标变量值(简写)
...
# 设置3个参数
# 参数1:arg1,整型,非必须传入参数
# 参数2:arg2,字符串,非必须传入参数,包含默认值「xag」
# 参数3:arg3,字符串类型,必须传入的参数
parser.add_argument('--arg1', '-a1', type=int, help='参数1,非必须参数')
parser.add_argument('--arg2', '-a2', type=str, help='参数2,非必须参数,包含默认值', default='xag')
parser.add_argument('--arg3', '-a3', type=str, 
最全总结 | 聊聊 Python 命令行参数化的几种方式。 在日常编写 Python 脚本的过程中,我们经常需要结合命令行参数传入一些变量参数,使项目使用更加的灵活方便本篇文章我将罗列出构建 Python 命令行参数的 4 种常见方式它们分别是:构建命令行参数最简单、常见的方式是利用内置的「 sys.argv 」模块它是将参数以一个有序的列表传入,所以在使用时传参顺序必须固定因此,这种方式适用于参数个数少且场景固定的项目中 ... 阅读详情

相关推荐

Python命令行参数解析全面总结

参数类型选择主要操作对象 → 位置参数配置选项 → 选项参数开关标志 →nargs使用指南可选值 →nargs='?多个值 →nargs='*'(可选) 或nargs='+'(至少一个)固定数量 →nargs=Naction使用场景布尔标志 →store_true收集多个值 →append计数 →count其他提示为所有参数添加help描述为常用选项设置合理的默认值使用type参数进行类型验证使用choices限制有效值范围。

我的博客 1146

详解Python sys.argv使用方法

在本文中我们给大家详细讲解了关于Python sys.argv使用方法以及注意事项,有此需要的读者们跟着学习下。

STM32 USB AUDIO实战指南——从零构建音频设备

本文详细介绍了如何使用STM32F407构建USB音频设备,从硬件准备到软件配置,再到音频播放和录制功能的实现。通过STM32CubeMX配置和实战代码示例,帮助开发者快速掌握USB Audio Class规范,实现低延迟、高质量的音频传输,适用于语音交互、音乐播放等多种场景。

weixin_42549037的博客 485

GCJ02坐标系转WGS84坐标系(已实地测试基本无偏差)

坐标系转化,GCJ02坐标系,WGS84坐标系

Xiao_XianYu_的博客 1859

顶刊《会计研究》数据复现|最新上市公司数智化数据

本文基于Python文本分析方法构建了中国A股上市公司数智化指标(1991-2024),通过识别年报中的"机器学习""智能医疗"等关键词,量化企业数字化与智能化融合程度。研究发现数智化企业更倾向于非正式渠道的定性披露以规避风险,该指标为监管完善信披规则提供了参考。研究还揭示了数智化对企业信息披露策略的转变,并提出了未来研究方向,包括数智化对绿色创新、ESG表现等影响机制。数据覆盖非金融类上市公司,采用文本挖掘技术构建结构化指标,为相关领域研究提供了微观基础。

PPdata_Academy的博客 1488

大模型的应用与微调:如何调用 LLM?从 OpenAI API 到本地部署

本篇文章介绍了如何调用 OpenAI、DeepSeek、Manus、通义千问等大模型 API,并探讨了 LLM 本地部署的方法。在实际应用中,可以根据需求选择云端 API 或本地化部署方案,以满足不同的计算需求和隐私要求。下一篇:大模型微调与 RAG 技术(LoRA、QLoRA、向量数据库)

晴天彩虹雨的博客 1157

Python爬虫实战:深度解析携程/飞猪酒店评论API与大数据采集

本文详细介绍了如何通过Python爬虫技术获取携程和飞猪平台的酒店评论数据。我们涵盖了从API分析、反爬虫对策到数据存储和处理的完整流程。API逆向分析:通过浏览器开发者工具发现和分析API接口反爬虫对策:使用请求头随机化、IP代理、浏览器自动化等技术异步处理:使用asyncio提高爬取效率数据质量:实现数据清洗和质量检查机制系统架构:构建可扩展的分布式爬虫系统未来改进方向:机器学习识别验证码分布式爬虫架构实时数据流处理更智能的反反爬虫策略。

2201_76125261的博客 602

uniapp [安卓苹果App端] - 详细实现PDF预览功能在线预览PDF文档,Uniapp App端实现pdf文件预览在线预览pdf二进制文件流、本地pdf文档、PDF文件地址url路径(解决白屏

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,uniapp在线预览pdf功能,在安卓苹果app平台实现PDF的预览查看,uniappApp端实现pdf文件预览,UNIAPP在线预览PDF文档,Uniappapp在线预览pdf文件流,从后端接口里获取pdf文件如何转成链接预览,预览pdf的插件,uni-app的pdf预览功能,uniapp使用pdf.js插件预览pdf文件,预览pdf白屏没有报错,打开后没反应,打开是空白,加载PDF时发生错误,如

🏆 前端领域优质创作者 1万+

《PLECS仿真与实战:从建模到高端应用》-专栏文件目录

《PLECS仿真与实战:从建模到高端应用》是一本系统介绍PLECS电力电子仿真软件的实用指南。全书共10章,首先介绍软件安装与基础操作,包括RC电路仿真等入门内容;随后深入讲解各类电力电子电路的建模与仿真,涵盖整流、交交变换、直流变换、逆变等电路;最后探讨PWM控制建模和直流调速系统等高端应用。书中配有丰富的示例程序和波形分析方法,附录还包含电力电子器件、代码生成等实用资料。该书适合电力电子领域工程师和学生系统学习电路仿真技术。

546

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: 如何用 Python 实现安卓机自动化?
下一篇: 太酷了,用Python+Excel制作一个视频下载器!
普通网友
博客等级 码龄3年 4493粉丝 309原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值