我想要使用python遍历大量文件。我正在使用os.walk(源代码)并且正在工作,但由于我有一大堆文件,因为它一次性获取完整列表所以它占用了太多内存资源。如何优化它以使用更少的资源,并且可以一次遍历一个目录或以其他有效方式遍历,并且仍然能够迭代整个文件集。感谢
for dir, dirnames, filenames in os.walk(START_FOLDER):
for name in dirnames:
#if PRIVATE_FOLDER not in name:
for keyword in FOLDER_WITH_KEYWORDS_DELETION_EXCEPTION_LIST:
if keyword in name.lower():
ignoreList.append(name)
答案 0 :(得分:3)
如果问题是该目录只有too many files in it,那么希望在Python 3.5中解决这个问题。
在此之前,您可能需要查看scandir。
答案 1 :(得分:2)
您应该使用in
关键字来测试目录名是否与关键字匹配。
for _, dirnames, _ in os.walk(START_FOLDER):
for name in dirnames:
if any((k in name.lower() for k in FOLDER_WITH_KEYWORDS_DELETION_EXCEPTION_LIST)):
ignoreList.append(name)
如果您的ignoreList
太大,您可能需要考虑创建acceptedList
并使用它。