欢迎访问宙启技术站
智能推送

使用Python的SimpleHTTPServer模块进行本地文件浏览

发布时间:2023-12-24 15:00:05

SimpleHTTPServer是Python中的一个内置模块,可以用来快速搭建一个本地的简易Web服务器,用于浏览本地文件。

使用SimpleHTTPServer非常简单,只需要在命令行中运行一个Python脚本即可。下面是一个使用SimpleHTTPServer模块的示例:

import SimpleHTTPServer
import SocketServer

# 设置端口号
PORT = 8000

# 创建一个HTTP请求处理类
class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    pass

# 创建一个本地服务器
httpd = SocketServer.TCPServer(("", PORT), Handler)

print "Serving at port", PORT

# 启动服务器
httpd.serve_forever()

上面的示例代码会创建一个本地服务器,并监听指定端口(这里是8000),然后通过浏览器访问http://localhost:8000即可浏览本地文件。

你可以将上面的代码保存为一个Python脚本文件(比如server.py),然后在命令行中运行python server.py即可启动服务器。

默认情况下,SimpleHTTPServer会将当前目录作为服务器的根目录,并提供文件列表浏览功能。比如,如果当前目录下有一个名为index.html的文件,那么可以通过访问http://localhost:8000/index.html来直接访问该文件。

SimpleHTTPServer还提供了一些其他的功能,比如支持目录浏览、文件下载等等。你可以自定义一个HTTP请求处理类来实现这些功能,例如:

import SimpleHTTPServer
import SocketServer

# 设置端口号
PORT = 8000

# 创建一个HTTP请求处理类
class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    
    # 支持目录浏览功能
    def list_directory(self, path):
        try:
            # 调用父类的默认实现
            return SimpleHTTPServer.SimpleHTTPRequestHandler.list_directory(self, path)
        except:
            self.send_error(404, "File not found")

    # 支持文件下载功能
    def end_headers(self):
        self.send_header('Content-Disposition', 'attachment')

# 创建一个本地服务器
httpd = SocketServer.TCPServer(("", PORT), Handler)

print "Serving at port", PORT

# 启动服务器
httpd.serve_forever()

上面的代码中,通过重写list_directory方法,可以在浏览器访问目录时显示文件列表。同时,通过重写end_headers方法,在浏览器下载文件时自动将Content-Disposition标头设置为附件。

使用SimpleHTTPServer模块可以方便地创建一个简单的本地文件浏览服务器,用于快速查看本地文件内容。