make os.listdir()列出完整路径

Soh*_*aib 10 python os.path listdir

考虑以下代码:

files = sorted(os.listdir('dumps'), key=os.path.getctime)
Run Code Online (Sandbox Code Playgroud)

目标是根据创建时间对列出的文件进行排序.但是由于os.listdir只提供文件名而不是绝对路径,即os.path.getctime抛出异常

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

有这种情况的解决方法还是我需要编写自己的排序功能?

shx*_*hx2 16

你可以使用glob.

import os
from glob import glob
glob_pattern = os.path.join('dumps', '*')
files = sorted(glob(glob_pattern), key=os.path.getctime)
Run Code Online (Sandbox Code Playgroud)


Ste*_*ski 5

files = sorted(os.listdir('dumps'), key=lambda fn:os.path.getctime(os.path.join('dumps', fn)))
Run Code Online (Sandbox Code Playgroud)


小智 5

files = sorted([os.path.join('dumps', file) for file in os.listdir('dumps')], key=os.path.getctime)
Run Code Online (Sandbox Code Playgroud)