Python如何保存os.walk循环获取的全部文件并在循环外展示到HTML页面
问题原因
你代码中的relativeFiles属于循环内的临时变量,每次内层遍历文件时都会用新值覆盖旧值,因此循环结束后该变量只会保留最后一次遍历得到的文件路径,无法拿到全部结果。
解决方法
提前初始化一个空列表,遍历过程中将每一次生成的文件路径追加到列表中,列表会按顺序存储所有元素不会覆盖旧值,循环外直接操作该列表即可获取所有文件信息。
修正后的代码示例:
import os # 初始化空列表存储所有文件的相对路径 all_relative_files = [] for root, dirs, files in os.walk(exampleDirectory): # 该路径计算与内层文件遍历无关,提至外层可减少重复计算 relativePaths = os.path.relpath(exampleDirectory, outputDirectory) for i in files: relativeFiles = os.path.join(relativePaths, i) # 将当前文件路径追加到列表中 all_relative_files.append(relativeFiles) # 循环外可直接使用 all_relative_files 列表,包含所有遍历到的文件路径
生成HTML示例
在循环外生成页面时,直接遍历存储了所有路径的列表拼接HTML内容即可:
# 生成文件列表HTML片段 file_list_html = "<ul>" for file_path in all_relative_files: file_list_html += f"<li>{file_path}</li>" file_list_html += "</ul>" # 后续将该片段插入到完整HTML模板中,写入文件即可
内容的提问来源于stack exchange,提问作者Ellie
相关产品推荐
相关产品推荐

