通过命令行的形式来传递参数,使得配置参数容易起来。这里介绍python包argparse
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
from argparse import ArgumentParser
parse = ArgumentParser.add_argument('--s','-s')
## 保留1个或者2个均可。
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