python | argparse传递参数

本文介绍了Python的argparse模块,用于通过命令行方便地传递参数。核心函数解析包括name或flags、action、nargs、default、type、choices、required、help和dest等属性。示例中展示了如何定义函数、配置参数和使用argparse处理命令行输入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过命令行的形式来传递参数,使得配置参数容易起来。这里介绍python包argparse

核心函数解析

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
  • name or flags
    Either a name or a list of option strings, e.g. foo or -f, --foo. 用于标识参数的参数,必须有,通常以-或–来表示
from argparse import ArgumentParser
parse = ArgumentParser.add_argument('--s','-s')
## 保留1个或者2个均可。
  • action
    action - The basic type of action to be taken when this argument is encountered at the command line. 默认是store,表示存参数的值,store_const 表示以常量的形式来存储,append 列表,append_const 列表常量。

  • nargs
    nargs - The number of command-line arguments that should be consumed
    nargs=2 表示包含两个值的参数列表
    nargs=’*’ 表示任意个参数
    nargs=’+’ 表示至少一个参数

  • default
    默认值

  • type
    参数的数值类型

  • choices
    给定候选的值

  • required
    是否为必须给定的参数

  • help
    参数解释

  • dest
    这个参数相当于把位置或者选项关联到一个特定的名字

  • metavar
    这个参数用于help信息输出中

案例

  • 第一步:定义函数
import os
import pandas as pd
import argparse

def get_onefile_result(filename, threshold):
    dftmp = pd.read_csv(filename)
    df = dftmp.iloc[180:,:]
    min_time=df['times'].min()
    max_time=df['times'].max()
    rows = df.shape[0]
    abnormal_amount = df[df['scores']>=threshold].shape[0]

    t = [filename, min_time, max_time, rows, abnormal_amount]
    return t
    
  • 第二步: 配置参数
def main():
	## 管理参数,创建实例
	parser = argparse.ArgumentParser(description='new')
    
    ## --src\-s 均可使用,metavar用来生成帮助信息,required表明这个参数是必须有的,dest指参数的名称,action指执行的逻辑,help是帮助信息,type是指参数类型
    parser.add_argument("--src","-s",metavar='filename',required=True, dest='filename', action='append',help='text pattern to search for',type=str)

	## --out 或-o,必须有,默认是slow,可选择范围是slow、fast,类型是str
    parser.add_argument("--out","-o",metavar='pattern',required=True, dest='patterns', action='append',choices={2,3}, default=2, type=int)
    
    args = parser.parse_args()
    if args.s:
    	filename = args.s
    if args.o:
    	threshold = args.o
    
    return get_onefile_result(filename,threshold)

if __name__ == "__main__":
	main()
  • 第三步:使用
## 在shell端或者cmd端,输入,以上文件存放在同一个python脚本内,命名为argps.py
>> python argps.py -s data.csv -o 3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值