У меня есть папка с файлами, 1.pkl, 2.pkl, 11.pkl, 12.pkl, создаются последовательно.
При использовании кода 'os.listdir (path)', чтобы прочтите папку, порядок файлов :
1.pkl
11.pkl
12.pkl
2.pkl
Как я могу прочитать файл в порядке времени изменения?
Используйте os.scandir и , sorted функцию вместе для эффективного достижения эффекта:
os.scandir
sorted
entries = sorted(os.scandir(path), key=lambda ent: ent.stat().st_mtime)
Если вам не нужен другой особенности созданных им DirEntry объектов , простое понимание list для изменения атрибутов .name или .path решит эту проблему, например, чтобы получить имена (без полного пути):
DirEntry
list
.name
.path
names = [ent.name for ent in entries]
Попробуйте os.stat
os.stat
path = '.' import os files_with_times = [(f, os.stat(f).st_mtime) for f in os.listdir(path)] for f,t in sorted(files_with_times, key=lambda x: x[1]): print(f)