首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >学习笔记 | 学会传参,事倍功半

学习笔记 | 学会传参,事倍功半

作者头像
用户11172986
发布2025-04-02 14:05:24
发布2025-04-02 14:05:24
11400
代码可运行
举报
文章被收录于专栏:气python风雨气python风雨
运行总次数:0
代码可运行

前言

作为气象领域的Python学习者,我们经常需要处理不同的数据或调整脚本参数。如果每次修改参数都要打开代码文件,既麻烦又容易出错。

特别是在做项目的时候处理大批时间序列数据,每次使用都要改一次输入时间,非常浪费时间

那么怎么提高我们的代码复用率呢?

通过命令行传参,我们可以直接在运行脚本时输入参数,让代码更灵活、更通用!

下面介绍Python传参的两种方式:初级版(sys.argv)和进阶版(argparse)。

初级传参:sys.argv 的魔法

为什么用它?

sys.argv 可以让我们直接通过命令行输入参数,无需修改代码内部就能适应不同的场景,比如切换气象数据文件路径、调整计算参数等。

基本用法

  • sys.argv 是一个列表,存储了所有命令行参数。
  • 第一个元素sys.argv[0])是脚本本身的名称,后续元素才是用户输入的参数。
  • 参数的默认类型是字符串,需要数字时需手动转换(比如用int())。
代码语言:javascript
代码运行次数:0
运行
复制
# 案例:script.py
import sys

# 运行命令: python script.py 温度 30
print("脚本名:", sys.argv[0])   # 输出 script.py
print("参数类型:", sys.argv[1]) # 输出 "温度"
print("参数值:", int(sys.argv[2]))  # 输出整数 30


代码语言:javascript
代码运行次数:0
运行
复制
!python script.py 温度 30
代码语言:javascript
代码运行次数:0
运行
复制
脚本名: script.py

参数类型: 温度

参数值: 30

注意: 假设定义变量为 脚本名, 功能描述, 参数值 = sys.argv,运行时需要输入两个参数(例如 python script.py 降雨量 50),否则会报错


进阶传参:argparse 的优雅之道

为什么升级?

  • 当参数较多或需要更复杂的功能时(比如参数类型检查、默认值、帮助文档),sys.argv 就显得笨拙。argparse 模块提供了更强大的解析功能

三步上手

  1. 创建解析器:定义程序功能。
  2. 添加参数:设置每个参数的名字、类型、描述。
  3. 解析参数:自动处理用户输入并生成对象。
代码语言:javascript
代码运行次数:0
运行
复制
# 案例:weather_tool.py
import argparse

# 创建解析器
parser = argparse.ArgumentParser(description="气象数据分析工具")

# 添加参数
parser.add_argument("--file", type=str, required=True, help="输入数据文件路径")
parser.add_argument("--days", type=int, default=7, help="分析天数(默认7天)")

# 解析参数
args = parser.parse_args()

print("开始处理文件:", args.file)
print("分析天数:", args.days)

代码语言:javascript
代码运行次数:0
运行
复制
!python weather_tool.py --file data.csv --days 5
代码语言:javascript
代码运行次数:0
运行
复制
开始处理文件: data.csv

分析天数: 5

功能说明

  • --file:输入文件路径(必填项,required=True)。
  • --days:数值自动转成整数,不填时默认用7天。

总结

  • sys.argv 适合简单场景:少量参数的快速读取
  • argparse 适用复杂需求:参数多、类型检查、生成帮助文档(python script.py -h)时更高效。

通过传参功能,我们能将代码和数据分离,提升脚本的通用性和复用性。试试用这两种方法改造你的气象分析脚本吧!🌦️

相信看完这个,你的搬砖能力又level up了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-03-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气python风雨 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 初级传参:sys.argv 的魔法
    • 为什么用它?
    • 基本用法
  • 进阶传参:argparse 的优雅之道
    • 为什么升级?
    • 三步上手
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档