【问题标题】:make os.listdir() list complete paths使 os.listdir() 列出完整路径
【发布时间】:2014-09-04 05:11:52
【问题描述】:
考虑以下代码:
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'
这种情况有解决方法还是我需要编写自己的排序函数?
【问题讨论】:
标签:
python
os.path
listdir
【解决方案1】:
您可以使用glob。
import os
from glob import glob
glob_pattern = os.path.join('dumps', '*')
files = sorted(glob(glob_pattern), key=os.path.getctime)
【解决方案2】:
files = sorted(os.listdir('dumps'), key=lambda fn:os.path.getctime(os.path.join('dumps', fn)))
【解决方案3】:
files = sorted([os.path.join('dumps', file) for file in os.listdir('dumps')], key=os.path.getctime)
【解决方案4】:
这是另一种解决方案,如果它对某人更有效,则会产生一个 np 数组而不是列表。还是用os
import numpy as np
import os
NPFileListFullURL=np.char.add(Folder_Path, os.listdir(Folder_Path))