全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python命令行脚本开发教程_argparse与sys模块应用

argparse是Python命令行脚本开发的推荐标准方案,sys.argv适合简单场景;前者支持自动帮助、类型转换、校验等,后者仅返回原始参数列表,需手动处理。

Python命令行脚本开发中,argparse是推荐的标准方案,sys.argv适合简单场景。两者不是互斥关系,而是按需选择:小工具用sys够快,正式脚本用argparse更健壮、可维护。

用sys.argv快速获取参数

sys.argv是最底层的方式,返回命令行输入的字符串列表,sys.argv[0]是脚本名,后续元素是传入的参数。适合单参数、无选项、调试用的小脚本。

  • 直接索引取值,例如filename = sys.argv[1](注意加try/except防报错)
  • len(sys.argv)判断参数个数是否符合预期
  • 不支持自动帮助信息、类型转换、参数校验,全靠自己写逻辑

用argparse构建专业命令行接口

argparse是Python标准库中专为命令行解析设计的模块,能自动生成帮助文档、处理短/长选项、类型转换、默认值、互斥组等。

  • 先创建ArgumentParser对象,调用add_argument()定义参数,如parser.add_argument("-f", "--file", help="输入文件路径")
  • 调用parser.parse_args()后得到命名空间对象,属性名即参数名(如args.file
  • 支持type=intdefault="xxx"required=Truenargs="+"(接收多个值)等实用参数
  • 运行脚本时加-h--help自动输出格式化帮助页

常见组合技巧与避坑点

实际开发中常混合使用两种方式,或在argparse基础上做增强。

  • argparse.ArgumentParser(prog="mytool")自定义程序名,避免显示完整路径
  • 对必需但可能为空的参数(如配置文件),用const + nargs="?"实现“开关式”参数
  • 避免直接修改sys.argv再传给argparse;如需预处理,应先提取、再构造新参数列表
  • 子命令支持用add_subparsers(),适合git commitgit push这类多动作工具

一个最小可用示例

以下是一个带文件输入、是否静默模式、输出行数的脚本骨架:

import argparse

def main(): parser = argparse.ArgumentParser(description="统计文本行数") parser.add_argument("file", help="要读取的文件路径") parser.add_argument("-s", "--silent", action="store_true", help="不打印内容,只输出行数") args = parser.parse_args()

with open(args.file) as f:
    lines = f.readlines()
print(len(lines))
if not args.silent:
    print("".join(lines[:3]))  # 打印前3行示意

if name == "main": main()

保存为count.py后,可运行python count.py data.txt -spython count.py data.txt --help验证效果。


# python  # git  # 工具  # ai  # 配置文件  # 标准库  # red 


相关文章: 移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  建站之星在线客服如何快速接入解答?  网站制作费用多少钱,一个网站的运营,需要哪些费用?  网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何在阿里云高效完成企业建站全流程?  c++怎么用jemalloc c++替换默认内存分配器【性能】  中山网站推广排名,中山信息港登录入口?  建站之星如何实现五合一智能建站与营销推广?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  如何通过山东自助建站平台快速注册域名?  如何通过商城自助建站源码实现零基础高效建站?  如何选择靠谱的建站公司加盟品牌?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  临沂网站制作公司有哪些,临沂第四中学官网?  如何在云指建站中生成FTP站点?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  如何用腾讯建站主机快速创建免费网站?  如何通过NAT技术实现内网高效建站?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  如何正确选择百度移动适配建站域名?  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  建站之星上传入口如何快速找到?  如何通过VPS搭建网站快速盈利?  建站之星官网登录失败?如何快速解决?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  如何通过西部数码建站助手快速创建专业网站?  python的本地网站制作,如何创建本地站点?  如何在建站之星绑定自定义域名?  如何有效防御Web建站篡改攻击?  如何基于云服务器快速搭建网站及云盘系统?  如何获取PHP WAP自助建站系统源码?  建站主机选虚拟主机还是云服务器更好?  如何快速搭建响应式可视化网站?  如何快速搭建二级域名独立网站?  完全自定义免费建站平台:主题模板在线生成一站式服务  微信小程序制作网站有哪些,微信小程序需要做网站吗?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何在Ubuntu系统下快速搭建WordPress个人网站?  C++中引用和指针有什么区别?(代码说明)  C#怎么使用委托和事件 C# delegate与event编程方法  如何在宝塔面板创建新站点?  如何选择高性价比服务器搭建个人网站?  如何在万网开始建站?分步指南解析  建站之星备案流程有哪些注意事项?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。