Python 在创建时间之后对文件列表进行排序,在网络位置停止工作
我使用glob创建了一个文件列表。 我将在创建时间之后对该列表进行排序 代码一直在工作,但突然停止 当文件位于本地文件夹中时,它仍然有效。 当只有几个文件时,它也可以在网络位置工作 通常,网络位置上有+5000个文件Python 在创建时间之后对文件列表进行排序,在网络位置停止工作,python,sorting,Python,Sorting,我使用glob创建了一个文件列表。 我将在创建时间之后对该列表进行排序 代码一直在工作,但突然停止 当文件位于本地文件夹中时,它仍然有效。 当只有几个文件时,它也可以在网络位置工作 通常,网络位置上有+5000个文件 def get_files(folder): files_list = glob.glob(folder) files_list.sort(key=os.path.getctime) return files_list 它生成文件列表没有问题,但在排序时会
def get_files(folder):
files_list = glob.glob(folder)
files_list.sort(key=os.path.getctime)
return files_list
它生成文件列表没有问题,但在排序时会暂停。
getctime
远程文件是一种网络操作。这意味着在后台,您可以通过(大型)网络访问来获取文件列表,然后通过一个网络访问每个文件以获取其时间戳
根据scandir
的文档,它可以通过在第一次访问文件夹时获取文件的属性来节省资源。所以你应该试试:
def get_files(folder):
entries = os.scandir(folder)
files_list = [entry.name for entry in sorted(entries, key=lambda x:x.stat().c_time)]
我想,这是你想要的
def get_files(folder):
files_list = glob.glob(folder)
return sorted(files_list, key = os.path.getctime)
你确定这不仅仅是统计每个文件的延迟吗?从网络文件系统获取元数据通常比从本地文件系统获取元数据慢得多。你说得对-实际上它会在很长一段时间后返回数据。嗨-谢谢你的建议。但是它给出了这个错误:TypeError:sorted预期1参数,Get 2非常感谢,我将尝试一下。谢谢你的建议。我的代码不会在排序列表中传递-谢谢您让我知道。这是一个比我的代码更短更好的代码,但不幸的是,它需要同样的时间来处理。