我正在尝试获取目录中最新文件的文件名,该目录在网络驱动器上有数百个文件。
基本上,这个想法是剪切文件名(文件的下载日期/时间,例如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)
如果文件名已经包含日期时间,为什么还要麻烦获取其统计信息?并且,如果名称类似于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])