使用glob.glob和max(os.path.getctime)获取最新文件名等

问题描述 投票:0回答:1

我正在尝试获取目录中最新文件的文件名,该目录在网络驱动器上有数百个文件。

基本上,这个想法是剪切文件名(文件的下载日期/时间,例如xyz201912191455.csv),并在每次运行脚本时将其粘贴到config file上。

现在list_of_files通常在大约一秒钟内运行,但是latest_file大约需要100秒,这非常慢。

是否有更快的方法来提取有关最新文件的信息?

代码示例如下:

import os
import glob
import time
from configparser import ConfigParser
import configparser
list_of_files = glob.glob('filepath\*', recursive=True)
latest_file = max(list_of_files, key=os.path.getctime)

list_of_files2 = glob.glob('filepath\*', recursive=True)
latest_file2 = max(list_of_files2, key=os.path.getctime)
python list time max glob
1个回答
0
投票

如果文件名已经包含日期时间,为什么还要麻烦获取其统计信息?并且,如果名称类似于xyz201912191455.csv,则可以使用[-16:-4]提取201912191455,并且由于这些填充为零,因此将按数字顺序按字典顺序进行排序。另外,这里不需要recursive=True,因为其中没有**

list_of_files = glob.glob('filepath\*')
latest_file = max(list_of_files, key=lambda n: n[-16:-4])
© www.soinside.com 2019 - 2024. All rights reserved.