Python - 只读取并绘制最新文件

时间:2015-10-20 05:04:48

标签: python csv datestamp

我有多个csv文件(每天生成的每个文件),带有通用文件名(比如说file_),我会给它们添加日期戳。

例如:file_2015_10_19file_2015_10_18等等。

现在,我只想阅读5个最新文件并创建比较图。

对我来说,绘图是没有问题的,但是排序所有文件并只读取最新的5是。

2 个答案:

答案 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]

希望这有帮助!