我正在尝试在网络驱动器上有几百个文件的目录中获取最新文件的文件名。
基本上这个想法是截取文件名(它是文件的下载日期/时间,例如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])