python | argparse传递参数

通过命令行的形式来传递参数,使得配置参数容易起来。这里介绍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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券