使用Python为静态网站生成文件夹嵌套索引页的问题求助
使用Python为静态网站生成文件夹嵌套索引页的问题求助
各位大佬好!我最近在折腾一个小工具:想用Python给我的静态网站所有文件夹和子文件夹自动生成对应的index.html索引页,里面列出当前目录下的所有文件和子文件夹,点击子文件夹就能跳转到它的专属索引页。但目前我的实现方式特别笨拙,每个文件夹都要手动放index.py脚本,还要硬编码路径才能避免FileNotFoundError,自己都知道写得一团糟,想请大家帮忙优化,同时也指点我该补哪些Python基础!
先给大家看我现在的混乱代码:
from pathlib import Path def make_index_html(path): path = Path(path) # 这里我硬编码了子文件夹路径,太蠢了 path = path / 'FOLDER A' with open(path / 'index.html', 'w') as out: for file in sorted(path.iterdir()): out.write(f'<a href="{file.name}">{file.name}</a>\n') if __name__ == '__main__': make_index_html('.') # 还要手动调用子文件夹里的脚本,完全不自动化 with open("./FOLDER A/SUBFOLDER B/index.py") as file: exec(file.read())
现在我只能靠每个文件夹里的index.py来触发生成,而我真正想要的是自动递归遍历所有嵌套文件夹,生成层级化的索引页,效果应该是这样的:
HOME INDEX
FOLDER A [click]
→ FOLDER A INDEX
file C
SUBFOLDER D [click]
→ SUBFOLDER D INDEX
file g
file h
index.py
我知道肯定有更简洁的方法,不用手动给每个文件夹加脚本。因为我自己对Python的路径处理、递归这些核心概念掌握得不好,所以写得乱七八糟。想请大家帮我重构这段代码,同时也告诉我应该重点学习哪些Python知识点(比如pathlib的高级用法?递归函数?),帮我补补基础!
非常感谢大家的帮忙!
内容来源于stack exchange
相关产品推荐
相关产品推荐

