我有多个带有通用文件名(比如 )的 csv 文件(每个文件每天生成),file_
并且我在它们后面附加了日期戳。
例如:file_2015_10_19
,file_2015_10_18
等等。
现在,我只想阅读 5 个最新文件并创建一个比较图。
对我来说,绘图没有问题,但对所有文件进行排序并只读取最新的 5 个文件。
您需要阅读所有文件,然后对它们进行排序。恐怕没有捷径。
可以按最后修改时间排序,也可以解析日期组件,按日期排序
import glob
import os
import datetime
file_mask = 'file_*'
ts = 'file_%Y_%m_%d'
path_to_files = r'/foo/bar/zoo/'
def get_date_from_file(s):
return datetime.datetime.strptime(s, ts)
all_files = glob.glob(os.path.join(path_to_files, file_mask))
sorted_files = sorted(all_files, key=lambda x: os.path.getmtime(x))[-5:]
sorted_by_date = sorted(all_files, key=get_date_from_file)[-5:]
import os
# list all files in the directory - returns a list of files
files = os.listdir('.')
# sort the list in reverse order
files.sort(reverse=True)
# the top 5 items in the list are the files you need
sorted_files = files[:-5]
希望这可以帮助!