You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在含index.html的Python本地http.server中查看目录列表?

当然有办法!下面给你两种实用方案,按需选择就行:

方案1:自定义HTTP服务器脚本(最可靠)

默认的python -m http.server用的SimpleHTTPRequestHandler会优先找index.html并返回它。我们可以写个简单的自定义脚本,修改这个行为,让服务器不管有没有index.html,都直接显示目录列表。

步骤很简单:

  1. 在项目根目录新建一个custom_server.py文件,把下面的代码粘进去:
from http.server import SimpleHTTPRequestHandler, HTTPServer

class DirectoryOnlyHandler(SimpleHTTPRequestHandler):
    # 清空默认的索引文件列表,这样就不会自动加载index.html了
    directory_index = []

if __name__ == "__main__":
    PORT = 8000
    server = HTTPServer(("", PORT), DirectoryOnlyHandler)
    print(f"服务器运行在 http://localhost:{PORT}")
    try:
        server.serve_forever()
    except KeyboardInterrupt:
        print("\n服务器已停止。")
        server.server_close()
  1. 用这个脚本替代默认命令启动服务器:
python custom_server.py

现在访问http://localhost:8000,就直接显示目录列表了。要是想看index.html的内容,直接访问http://localhost:8000/index.html就行。

方案2:URL路径技巧(临时快速用)

如果不想写脚本,也可以试试修改浏览器地址栏的URL来绕过index.html的自动加载:

  • 正常访问http://localhost:8000会加载index.html,但你可以输入http://localhost:8000/%2E%2E/(这是../的URL编码)
  • 或者直接输入http://localhost:8000/./(末尾加个./)

不过要注意,这个方法的有效性可能和Python版本有关,有些新版本可能已经修复了这个绕过方式,所以方案1是更稳定的选择。

内容的提问来源于stack exchange,提问作者Kundan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 15:33:17