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

终端执行python脚本,并使用终端输入的额外参数

在终端执行 Python 脚本时传递参数,最常用且标准的方法是使用 Python 内置的 argparse 模块。它功能强大,能自动处理参数解析、类型转换、生成帮助信息等,非常适合“普通的 Python 脚本”。

下面我将通过一个完整的例子,向你展示如何实现。

📜 1. 编写你的 Python 脚本

假设我们有一个名为 greet.py 的脚本,它需要接收一个必须的位置参数(名字)和一个可选的参数(问候语)。

# greet.py
import argparse# 1. 创建 ArgumentParser 对象
# description 参数用于描述这个脚本是做什么的,会显示在帮助信息中
parser = argparse.ArgumentParser(description='一个简单的问候脚本。')# 2. 添加参数
# 位置参数:用户必须提供,例如 'Alice'
parser.add_argument('name', type=str, help='要问候的名字')# 可选参数:以 '--' 或 '-' 开头,例如 --greeting 或 -g
# default 设置了默认值,如果用户不提供此参数,就使用默认值
parser.add_argument('--greeting', '-g', type=str, default='你好', help='问候语 (默认: 你好)')# 3. 解析参数
# parse_args() 方法会解析命令行参数,并将它们作为属性存储在 args 对象中
args = parser.parse_args()# 4. 使用参数
print(f"{args.greeting}, {args.name}!")

💻 2. 在终端中执行并传参

编写好脚本后,你就可以在终端(命令行)中运行它,并传递不同的参数。

场景一:只传递必须的位置参数

python greet.py Alice

输出:

你好, Alice!

这里我们只提供了 name 参数,greeting 参数使用了默认值“你好”。

场景二:传递必须参数和可选参数

python greet.py Bob --greeting Hello

输出:

Hello, Bob!

这里我们同时提供了 name--greeting 参数。

场景三:使用可选参数的短格式

python greet.py Charlie -g Hi

输出:

Hi, Charlie!

我们在定义参数时指定了 -g 作为 --greeting 的别名,所以可以这样简写。

❓ 3. 获取帮助信息

argparse 模块的一个巨大优势是它能自动生成帮助信息。你只需要在命令后面加上 -h--help 参数。

python greet.py --help

输出:

usage: greet.py [-h] [--greeting GREETING] name一个简单的问候脚本。positional arguments:name                  要问候的名字optional arguments:-h, --help            显示此帮助信息并退出--greeting, -g GREETING问候语 (默认: 你好)

这对于你和任何其他使用你脚本的人来说都非常方便,无需查看源代码就能知道如何使用。

🔍 补充:更简单的 sys.argv 方法

对于极其简单的脚本,你也可以使用 sys.argv 来获取参数。它是一个列表,包含了所有命令行参数。

  • sys.argv[0] 是脚本名称。
  • sys.argv[1] 是第一个参数,以此类推。
# simple_script.py
import sys# 获取第一个和第二个参数
name = sys.argv[1]
age = sys.argv[2]print(f"你的名字是 {name},今年 {age} 岁。")

在终端执行:

python simple_script.py Alice 25

输出:

你的名字是 Alice,今年 25 岁。

注意:使用 sys.argv 时,你需要自己处理参数的数量、类型和错误,如果参数很多或逻辑复杂,代码会变得难以维护。因此,对于绝大多数情况,强烈推荐优先使用 argparse 模块

http://www.jsqmd.com/news/443643/

相关文章:

  • 分享江苏导热油炉价格行情,分析哪家性价比高 - 工业设备
  • 2026年SAT快速提分补习机构推荐 高效出分冲刺培训机构哪家提分快 - 品牌2026
  • 详解2026郑州华埔装饰客户评价,推荐专业评价高的装修公司选择 - 工业品网
  • 2026香港留学申请深度解析与深圳留学中介推荐指南 - 品牌2026
  • DevonAR/VR:沉浸式编程体验探索 - 教程
  • 2026 年国内大健康 OEM_ODM 十大品牌广东广州排名及解析 - 十大品牌榜
  • kotlin 基础(1)
  • 2026年商丘互联网运营公司口碑排名,沟通能力强的公司盘点 - 工业推荐榜
  • 2026SAT精品小班辅导机构哪家好 线下一对一专业高端培训机构推荐 - 品牌2026
  • 2026最新新风系统/换气扇/风幕机/除湿机/风机推荐:多元场景适配,这家实力突出 - 十大品牌榜
  • 2026年驻马店家具定制供应企业排名,哪家性价比高? - 工业品牌热点
  • 2026深圳美国留学中介哪家好?专业高端美国留学中介服务推荐 - 品牌2026
  • 2026香港本科申请中介推荐指南,港前三申请中介靠谱机构详细介绍 - 品牌2026
  • Vite 启动本地开发环境失败 `Cannot find package`
  • 探讨青海蒙娜丽莎婚纱摄影,其性价比究竟如何 - mypinpai
  • 造纸靴压机远程监控运维系统方案
  • 速看!这些体积表面电阻率测试仪品牌值得推荐 - 品牌推荐大师
  • 2026年 液压扳手/拉伸器/中空扳手厂家实力推荐榜:专业动力工具源头工厂,核心技术解析与选购指南 - 品牌企业推荐师(官方)
  • 细聊境道原竹耐用性,广东地区选择哪家比较靠谱? - myqiye
  • 2026年医用无影灯厂家实力推荐榜:手术室无影灯、医用手术无影灯专业品牌深度解析,聚焦技术创新与临床光效 - 品牌企业推荐师(官方)
  • 2026深圳留学中介推荐怎么选?深圳高端留学中介推荐避坑攻略 - 品牌2026
  • 树莓派CM0 Nano + OpenClaw + 飞书:我的7x24小时AI秘书搭建纪实
  • 2026年电子邮件系统产品怎么选?五大品牌实测对比指南 - TurboEx
  • 2026年3月青少年祛痘护肤产品实力排行榜:基于环保性能与市场口碑的五大权威品牌推荐榜单 - 十大品牌榜
  • 2026年花生脱皮机厂家实力推荐:潍坊市泽安机械科技,干法/湿法/自走式/红衣脱皮机全系优选,适配食品加工多场景 - 品牌推荐官
  • 2026年选购卧式砂磨机、纳米砂磨机,哪家厂家更靠谱? - 工业推荐榜
  • 【整车架构】汽车架构演进路线及现状
  • 创建对象内存分析
  • 京东e卡回收哪家好?2026实测2大主流平台,安全变现不踩坑 - 京回收小程序
  • 硬件运维 --- ZXUSS VS3000 媒体服务器通俗解释