📅  最后修改于: 2023-12-03 15:22:20.493000             🧑  作者: Mango
在开发或测试需要简单地提供本地文件服务时,可以使用Python自带的SimpleHTTPServer模块。该模块基于Python标准库中的BaseHTTPServer模块实现,提供了一个简单的Web服务器,可以快速地启动本地文件服务。本文将介绍如何使用SimpleHTTPServer模块提供文件服务。
在命令行中执行以下命令即可在本地启动一个简单的文件服务:
python -m SimpleHTTPServer 8000
其中,python
是Python解释器的可执行文件路径,SimpleHTTPServer
是模块名,8000
是端口号。执行完该命令后,可以通过访问http://localhost:8000
来访问本地文件服务。默认情况下,文件服务提供的是当前目录下的文件。例如,如果当前目录下有一个名为index.html
的文件,则可以通过http://localhost:8000/index.html
来访问该文件。
如果要指定提供文件的目录,可以在命令行中指定:
python -m SimpleHTTPServer 8000 /path/to/directory
其中,/path/to/directory
是要提供的文件目录的路径。执行完该命令后,可以通过访问http://localhost:8000
来访问指定目录下的文件。
如果需要自定义文件服务的实现,可以通过继承SimpleHTTPRequestHandler
类来实现。例如,下面的示例将返回当前系统的CPU使用情况:
import SimpleHTTPServer
import SocketServer
import psutil
PORT = 8000
class CustomHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/cpu':
cpu_percent = psutil.cpu_percent()
self.send_response(200)
self.send_header('Content-type', 'text/plain')
self.end_headers()
self.wfile.write('CPU usage: {}%'.format(cpu_percent))
else:
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
httpd = SocketServer.TCPServer(("", PORT), CustomHandler)
print "Serving at port", PORT
httpd.serve_forever()
在该示例中,自定义了一个CustomHandler
类,重写了do_GET
方法,当请求路径为/cpu
时,返回当前系统的CPU使用情况。
SimpleHTTPServer模块提供了一个简单的Web服务器,可以轻松快速地提供本地文件服务。虽然该模块的功能比较简单,但在调试和开发测试时非常有用。