获取linux中最新文件的名称 - PYTHON

时间:2016-10-12 09:15:01

标签: python

我想从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')

Source

但我希望代码在不指定文件扩展名的情况下返回最新文件的名称。 所以,如果有jpg,jpeg,png,gif

,请说

我希望代码片段能够覆盖所有内容。

任何输入?

2 个答案:

答案 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]]