Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >学习笔记 | 学会传参,事倍功半

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

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

前言

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

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

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

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

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

初级传参:sys.argv 的魔法

为什么用它?

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

基本用法

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

参数类型: 温度

参数值: 30

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


进阶传参:argparse 的优雅之道

为什么升级?

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

三步上手

  1. 创建解析器:定义程序功能。
  2. 添加参数:设置每个参数的名字、类型、描述。
  3. 解析参数:自动处理用户输入并生成对象。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 案例: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
运行
AI代码解释
复制
!python weather_tool.py --file data.csv --days 5
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
开始处理文件: 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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
命令行运行Python脚本时传入参数的三种方式
如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式。
全栈程序员站长
2021/04/07
7.5K0
最全总结 | 聊聊 Python 命令行参数化的几种方式!
在日常编写 Python 脚本的过程中,我们经常需要结合命令行参数传入一些变量参数,使项目使用更加的灵活方便
AirPython
2022/09/28
2.4K0
python3 获取脚本参数获取方式对比
平常写 python 脚本时会有一些从命令行获取参数的需求,这篇文章记录下常见的参数获取和处理方式。
用户4945346
2020/11/04
1.5K0
python3 获取脚本参数获取方式对比
【测试开发】python系列教程:argparse 模块
在命令行程序中,经常需要获取命令行参数。Python内置的sys.argv保存了完整的参数列表,我们可以从中解析出需要的参数:
雷子
2023/08/25
2140
【测试开发】python系列教程:argparse 模块
Python笔记:外部参数传入考察(一)argparse库
在编程中,我们往往会遇到需要通过外部参数来控制脚本运行模式的情况,在通用的框架类代码中,这种情况尤为明显,因此,这里,我们来考察一下如何将参数传入到脚本文件中,而不是作为固定参数写死在脚本当中。
codename_cys
2021/03/25
4.4K0
Python3脚本编程常用.md
Python 提供了 getopt 模块来获取命令行参数(指定参数名称) getopt 模块是专门处理命令行参数的模块,用于获取命令行选项和参数,也就是sys.argv,命令行选项使得程序的参数更加灵活,支持短选项模式(-)和长选项模式(–)。
全栈工程师修炼指南
2020/10/23
1K0
Python3脚本编程常用.md
Python解析命令行读取参数 — argparse模块
在多个文件或者不同语言协同的项目中,python脚本经常需要从命令行直接读取参数。万能的python就自带了argprase包使得这一工作变得简单而规范。PS:optparse包是类似的功能,只不过写起来更麻烦一些。
全栈程序员站长
2022/07/19
8020
python学习之argparse模块
argparse是python用于解析命令行参数和选项的标准模块,用于代替已经过时的optparse模块。
py3study
2020/01/09
1.9K0
Python中的参数传递与解析
Python传递命令行参数 Python的命令行参数传递和C语言类似,都会把命令行参数保存到argv的变量中。对于python而言,argv是sys模块中定义的一个list。与C语言不同的是,python中并没有定义argc,要获得参数的个数,需要使用len(sys.argv) 当用户使用'python -c "command" '来运行一条python语句时,argv中保存的是['-c']及"command"后面的参数,例如: $ python -c 'import sys print sys.argv'
宅蓝三木
2018/02/07
2.2K0
使用命令行界面运行Python脚本
本文将讲解如何使用带有argparse库的命令行界面运行Python脚本。命令行界面(CLI)允许我们通过在Shell(如果使用的是Windows,则为命令提示符)中键入命令来执行程序。我们可以在命令行上键入不同的参数并将这些参数传递到脚本中,而不是每次运行脚本时都更改.py文件中的代码。因此,使用CLI是非常灵活和方便的,而且,从黑屏启动程序会让你更酷,更像一个真正的程序员。
fanjy
2022/04/13
3K0
使用命令行界面运行Python脚本
使用click创建完美的Python命令行程序
让我们将这些规则应用于一个具体的案例:一个使用Caesar cipher加密和解密消息的脚本。
用户8949263
2022/11/07
1.1K0
使用click创建完美的Python命令行程序
Python 命令行参数解析库argparse
在工作业务中,有些函数的调用要尽量傻瓜,能够让其他人能够方便地调用,毕竟甲方是爸爸。
MeteoAI
2019/07/24
1.9K0
Python3 命令行参数解析
在模型训练程序中,我们经常要配置命令参数,这里可用到 argparse 模块,它是 Python 内置的一个用于命令选项与参数解析的模块,通过在程序中定义好我们需要的参数,argparse 将会从 sys.argv 中解析出这些参数,并自动生成帮助和使用信息。 使用 argparse 模块解析命令行参数,主要分三个步骤:创建解析器、添加参数、解析参数,步骤如下:
嵌入式视觉
2022/09/05
1.3K0
Python 中argparse模块的使用
如果脚本很简单或临时使用,没有多个复杂的参数选项,可以直接利用sys.argv将脚本后的参数依次读取(读进来的默认是字符串格式)。
用户1332428
2018/07/30
8270
Python的命令行参数解析
命令行参数解析在编程语言中基本都会碰到,Python中内置了一个用于命令项选项与参数解析的模块argparse。下面主要介绍两种解析Python命令行参数的方式。 1. sys.argv 解析Pyth
Tyan
2017/12/28
1.7K0
Python | 使用argparse解析命令行参数
今天是Python专题第27篇文章,我们来聊聊Python当中的命令行参数工具argparse。
TechFlow-承志
2020/08/17
2K0
python argparse使用
 在不同环境部署项目时,由于不同的配置,部署时难免会改变部署的方式,而且基本使用版本管理工具,比如git或svn进行下拉代码部署项目时,尽可能的不变动代码(如果变动代码,下次下拉代码前必须要使用git reset --hard命令恢复代码,较为麻烦)而达到成功部署的目的。
用户1558882
2019/03/19
9770
parser.add_argument()用法——命令行选项、参数和子命令解析器
argparse是一个Python模块:命令行选项、参数和子命令解析器。通过使用这种方法,可以在使用
汀丶人工智能
2022/12/21
2.9K0
Python 命令行参数的3种传入方式
一般我们在运行 Python 项目或者脚本的时候都是直接执行启动脚本即可,但是 Python 作为一个脚本语言,在 Linux 中经常会跟 Shell 脚本结合使用,这个时候执行的 Python 脚本多半都需要使用命令行参数传入一些变量,下面就分享一下我在工作中常见和自己会使用的3种命令行参数传入方式。
Hopetree
2022/09/26
1K0
python-argparse
在python程序中,第一步就是获取参数,然后程序才能执行。对于简单的程序脚本,可以直接使用sys.argv[] 来获取命令行参数,但是应用到大的软件项目中,我们需要更加规范,更加方便而功能强大工具来处理命令行参数,本文主要介绍python标准库argparse的简单使用,详细方法及示例请参考python标准库
零式的天空
2022/03/02
8160
相关推荐
命令行运行Python脚本时传入参数的三种方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档