How to get the latest file in a folder? How to get the latest file in a folder? python-3.x python-3.x

How to get the latest file in a folder?


Whatever is assigned to the files variable is incorrect. Use the following code.

import globimport oslist_of_files = glob.glob('/path/to/folder/*') # * means all if need specific format then *.csvlatest_file = max(list_of_files, key=os.path.getctime)print(latest_file)


max(files, key = os.path.getctime)

is quite incomplete code. What is files? It probably is a list of file names, coming out of os.listdir().

But this list lists only the filename parts (a. k. a. "basenames"), because their path is common. In order to use it correctly, you have to combine it with the path leading to it (and used to obtain it).

Such as (untested):

def newest(path):    files = os.listdir(path)    paths = [os.path.join(path, basename) for basename in files]    return max(paths, key=os.path.getctime)


I lack the reputation to comment but ctime from Marlon Abeykoons response did not give the correct result for me. Using mtime does the trick though. (key=os.path.getmtime))

import globimport oslist_of_files = glob.glob('/path/to/folder/*') # * means all if need specific format then *.csvlatest_file = max(list_of_files, key=os.path.getmtime)print(latest_file)

I found two answers for that problem:

python os.path.getctime max does not return latestDifference between python - getmtime() and getctime() in unix system