我想从python中的特定目录中获取最新文件的名称?
我用过这个
import os
import glob
def get_latest_file(path, *paths):
"""Returns the name of the latest (most recent) file
of the joined path(s)"""
fullpath = os.path.join(path, *paths)
print fullpath
list_of_files = glob.glob(fullpath)
if not list_of_files:
return None
latest_file = max(list_of_files, key=os.path.getctime)
_, filename = os.path.split(latest_file)
return filename
if __name__ == "__main__":
print get_latest_file('ocr', 'uploads', '*.png')
但我希望代码在不指定文件扩展名的情况下返回最新文件的名称。 所以,如果有jpg,jpeg,png,gif
,请说我希望代码片段能够覆盖所有内容。
任何输入?
答案 0 :(得分:2)
使用您的最后一行,您只需检索扩展名为.png的文件
get_latest_file('ocr', 'uploads', '*.png')
如果要检索不依赖于扩展名的所有文件,只需将代码中的扩展名规范删除到glob.glob('')即可。这将检索目录中的所有文件。如果你仍然需要任何扩展,但是你也可以使用glob.glob(。*)检索它们并不重要。
答案 1 :(得分:0)
如果你不关心扩展,那么简单的os.walk迭代就可以了。如果需要,您可以将其扩展为过滤扩展名。
import os
all_files = {}
root = 'C:\workspace\werkzeug-master'
for r, d, files in os.walk(root):
for f in files:
fp = os.path.join(root, r, f)
all_files[os.path.getmtime(fp)] = fp
keys = all_files.keys()
keys.sort(reverse = True)
print all_files[keys[0]]