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