【发布时间】:2019-12-13 22:52:36
【问题描述】:
这是一个列出当前文件夹和子文件夹中所有文件的函数,它是递归的,我不能非递归地写它
我尝试使用嵌套格式的 while 和 for 循环,但无法使其工作。
def recur_files(start_dir):
files = []
original_path = os.getcwd()
os.chdir(start_dir)
items = os.listdir()
for item in items:
if "." in item:
files.append(os.path.abspath(item))
else:
files.extend(recur_files(os.path.abspath(item)))
os.chdir(original_path)
return files
【问题讨论】:
-
使用
os.walk()获取文件夹和子文件夹中的所有文件。 -
要使其不使用递归(并且不使用 os.walk),您必须对目录使用列表并使用从该列表中获取 dirname 的循环。如果找到子文件夹,则将 dirname 添加到此列表中,下次循环应从列表中获取它。
标签: python file recursion directory operating-system