os
os.walk
for root, dirs, files in os.walk(system_dir):
i += 1
print(i)
print(root)
print('dirs')
print(dirs)
print('files')
print(files)
1
C:\Users\michaelxiang\Desktop\get_report0906\get_report
['maps']
['a.py', 'b.py', 'get_report.py', 'judge_succ.py', 'maps.cfg']
2
C:\Users\michaelxiang\Desktop\get_report0906\get_report\maps
['2016-09-06-16-18-40']
['case.csv', 'data.csv', 'judge_succ.py', 'percent-2016-09-06-16-18-40.csv', 'report-2016-09-06-16-18-40.csv']
3
C:\Users\michaelxiang\Desktop\get_report0906\get_report\maps\2016-09-06-16-18-40
['PIT多渠道脱机并行测试']
['case.csv', 'data.csv']
4
C:\Users\michaelxiang\Desktop\get_report0906\get_report\maps\2016-09-06-16-18-40\PIT多渠道脱机并行测试
[]
['消费(传统)-TPS消费(传统)-成功率时间段2016-08-10 13-03-25-2016-08-10 13-06-25.png', '行业信息查询-TPS行业信息查询-成功率
时间段2016-08-10 13-03-25-2016-08-10 13-06-25.png', '行业账单查询-TPS行业账单查询-成功率时间段2016-08-10 13-03-25-2016-08-10 1
3-06-25.png']
可以看到:
root:执行os.walk时的每次的目录,会改变,因为会遍历目录下的每一层文件夹;
dirs: 目录下有几个文件夹,以列表存储文件夹名;
files: 目录下的文件,以列表存储文件名;
os.listdir
system_dir=os.getcwd()
for fname in os.listdir(system_dir):
if fname.startswith('report'):
os.remove(os.path.join(system_dir, fname))
这个的作用就是删除该目录下,以report
开头的文件,
os.path
os.path.join
主要用到了将两个路径合并为一个路径,为什么不能用路径A+路径B呢?
因为,os.path.join(A,B)
会自动根据系统环境,改变两个路径的连接符。
Windows系统路径之间是\
,而Linux系统路径是/
,因此用os.path.join
写出的程序兼容性就更好了。
ConfigParser
ConfigParser – Work with configuration files
读取配置文件,例如配置文件maps.cfg:
[PERCENT]
#配置文件对应的系统文件夹名
system_dir =C:\Users\michaelxiang\Desktop\get_report0906\get_report\maps
#请输入占总交易的百分比值(小数)
percent = 0.8
#决定是否只是筛选占交易比重大的交易(y or n)
decision =y
[SUCC_VALUE]
#请输入成功率阈值(1以内的小数)
default_succ_value = 0.8
缴费 =0.8
消费 =0.8
行业账单 =0.8
行业信息查询 =0.8
[KEEP_TIME]
default_keep_time =60
缴费_持续时间 =60
消费_持续时间 =60
行业账单_持续时间 =60
行业信息查询_持续时间 =60
cf = configparser.ConfigParser()
# 读取配置文件变量config,并指定编码格式
cf.read(config, encoding='gb2312')
system_dir = cf.get('PERCENT', 'system_dir')
percent = float(cf.get('PERCENT', 'percent'))
decision = cf.get('PERCENT', 'decision')
# cf.options获得元祖对的列表[(,),(,)……]
succ_value_list = cf.options('SUCC_VALUE')
keep_time_dic = {x[0]: float(x[1]) for x in cf.items('KEEP_TIME')}
sys
sys.argv
# 读取配置文件中的参数
try:
config = sys.argv[1]
except IndexError as e:
print(u'运行脚本时,请加上cfg参数!', e)
sys.exit(-1)
print(config)
可以读取命令窗口的参数,例如python get_report.py maps.cfg
那么,这里sys.argv[1]
获得的值就是maps.cfg
。
shutil
shutil.copy2
print('*'*20+u'转存源数据文件到结果日期文件夹'+'*'*20)
shutil.copy2(data_source_path, result_file_path)
shutil.copy2(case_source_path, result_file_path)
print('*'*20+u'存储成功!'+'*'*20)
用来拷贝文件,复制到目标文件夹。
shutil.rmtree
shutil.rmtree('maps',ignore_errors=True)
只有机上后边的参数,空目录才会删除,否则会报错。