使用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模块可以方便地创建一个简单的本地文件浏览服务器,用于快速查看本地文件内容。
