python的glob模块,我们可以用它批量抓取某种格式、或者以某个字符打头的文件名。一般来说实验中跑出的实验结果可以用此函数批量抓取读入后,进行数据统计分析。
import glob
import numpy as np
import linecache
import os
filenames = glob.glob(path+"res*.txt")
//filenames = glob.glob("*.txt")
for filename in filenames:
···
对于res1-10000的数据文件,glob.glob中的排序往往是按照
res1.txt
res10.txt
res100.txt
```
这显然不是我们想要的顺序,甚至会影响实验结果
排序方法:
1、按名称排序:
sorted(glob.glob('*.txt'))
2、按修改时间排序:
import os
sorted(glob.glob('*.txt'), key=os.path.getmtime)
3、按大小排序:
import os
sorted(glob.glob('*.txt'), key=os.path.getsize)
我按照时间进行排序,成功得到:
4、截取文件名中的自然数排序
但是如果数据集不是自己用程序顺序生成的,这个可能不一定能彻底解决问题,因为结果文件的前缀名称一致,可以采用截取自然数的方式排序
sorted(glob.glob('res*.txt'), key=lambda name: int(name[4:]))