make os.listdir() list complete paths
23,013
Solution 1
files = sorted(os.listdir('dumps'), key=lambda fn:os.path.getctime(os.path.join('dumps', fn)))
Solution 2
You can use glob.
import os
from glob import glob
glob_pattern = os.path.join('dumps', '*')
files = sorted(glob(glob_pattern), key=os.path.getctime)
Solution 3
files = sorted([os.path.join('dumps', file) for file in os.listdir('dumps')], key=os.path.getctime)
![Sohaib](https://i.stack.imgur.com/VVepi.jpg?s=256&g=1)
Author by
Sohaib
Updated on July 05, 2022Comments
-
Sohaib almost 2 years
Consider the following piece of code:
files = sorted(os.listdir('dumps'), key=os.path.getctime)
The objective is to sort the listed files based on the creation time. However since the the os.listdir gives only the filename and not the absolute path the key ie, the os.path.getctime throws an exception saying
OSError: [Errno 2] No such file or directory: 'very_important_file.txt'
Is there a workaround to this situation or do I need to write my own sort function?
-
william_grisaitis almost 3 yearsglob to the rescue