我有多个csv文件(每天生成的每个文件),带有通用文件名(比如说file_
),我会给它们添加日期戳。
例如:file_2015_10_19
,file_2015_10_18
等等。
现在,我只想阅读5个最新文件并创建比较图。
对我来说,绘图是没有问题的,但是排序所有文件并只读取最新的5是。
答案 0 :(得分:1)
您需要阅读所有文件,然后对它们进行排序。我并不害怕。[/ p>
您可以按上次修改时间对其进行排序,或者解析日期组件并按日期排序
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:]
答案 1 :(得分:0)
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]
希望这有帮助!