python - 如何一一获取目录下的文件名?

标签 python file operating-system filesystems

我有一个目录,其中包含超过 100k 个文件。我需要循环它们并执行操作。我不想将整个文件列表加载到内存中,而是想同步遍历。在 Python 中实现这一目标的最佳方法是什么?

编辑:

这个question与我的问题不同,因为我不想一次将所有文件名加载到内存中。

最佳答案

Pathlib.iterdir()提供一个生成器来迭代目录,从而减少内存消耗:

import sys
import pathlib
import os

path = '/cache/srtm'
pl = pathlib.Path(path).iterdir()
oslb = os.listdir(path)
print(type(pl))
print (type(oslb))

print ('pathlib.iter: %s' % sys.getsizeof(pl))
print ('os.listdir: %s' % sys.getsizeof(oslb))

打印:

<class 'generator'>
<class 'list'>
pathlib.iter: 88
os.listdir: 124920

关于python - 如何一一获取目录下的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58248087/

相关文章:

python - Aldryn - DjangoCMS 安装插件不存在于 "Manage Addons"

python - 如何使用 Keras 使用批量输入进行训练,但使用 LSTM 使用单个示例进行预测?

c - fputs 制造问题

python - 使用坐标点生成热图

python - 如何从 python 运行命令行

java - 如何在 Java 中获取文件的文件扩展名?

c++ - 获取应用程序 Windows 的完整目录

gcc - `asm()`函数在C语言中是如何工作的?

c++ - 我自己的操作系统内核上的 C++ 静态构造函数

security - 上下文切换到安全模式的成本是多少(arm trustzone)