19

考虑以下代码:

files = sorted(os.listdir('dumps'), key=os.path.getctime)

目标是根据创建时间对列出的文件进行排序。然而,由于 os.listdir 只给出了文件名而不是绝对路径的关键,即 os.path.getctime 抛出一个异常说

OSError: [Errno 2] No such file or directory: 'very_important_file.txt'

这种情况是否有解决方法,还是我需要编写自己的排序函数?

4

4 回答 4

27

您可以使用glob

import os
from glob import glob
glob_pattern = os.path.join('dumps', '*')
files = sorted(glob(glob_pattern), key=os.path.getctime)
于 2014-09-04T05:17:11.373 回答
8
files = sorted(os.listdir('dumps'), key=lambda fn:os.path.getctime(os.path.join('dumps', fn)))
于 2014-09-04T05:23:02.087 回答
5
files = sorted([os.path.join('dumps', file) for file in os.listdir('dumps')], key=os.path.getctime)
于 2017-07-01T19:35:13.430 回答
0

这是另一种解决方案,如果它对某人更有效,则导致 np 数组而不是列表。仍然使用操作系统

import numpy as np
import os

NPFileListFullURL=np.char.add(Folder_Path, os.listdir(Folder_Path))
于 2021-10-27T23:48:16.883 回答