os

os.walk

  • pymotw-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

  • pymotw-directories

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

  • Runtime Environment

# 读取配置文件中的参数
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

  • pymotw-copy

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)

只有机上后边的参数,空目录才会删除,否则会报错。

csv

glob

datetime

collections

functools

参考

  • 推荐-pymotw

  • 小明-Python不能不知的模块