遍历目录时抛出非迭代器错误通常是因为尝试在不支持迭代的对象上使用迭代操作。以下是解决这个问题的一些常见方法:
方法1:使用os模块的os.listdir()函数来遍历目录。
import os
def traverse_directory(directory):
for filename in os.listdir(directory):
filepath = os.path.join(directory, filename)
if os.path.isdir(filepath):
traverse_directory(filepath)
else:
# 处理文件
print(filepath)
traverse_directory('/path/to/directory')
方法2:使用Path对象的iterdir()方法来遍历目录。这种方法需要使用pathlib模块。
from pathlib import Path
def traverse_directory(directory):
for path in Path(directory).iterdir():
if path.is_dir():
traverse_directory(path)
else:
# 处理文件
print(path)
traverse_directory('/path/to/directory')
这两种方法都能够递归地遍历目录并处理文件。根据你的需求,你可以在处理文件的地方进行相应的操作。