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

使用Python的serve()函数实现一个简单的文件服务器。

发布时间:2023-12-28 17:09:11

使用Python的http.server模块的serve()函数可以实现一个简单的文件服务器。该函数默认使用8000端口,并且将当前目录作为文件服务器的根目录。

下面是一个使用例子:

from http.server import HTTPServer, SimpleHTTPRequestHandler

def run(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler):
    server_address = ('', 8000)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

if __name__ == '__main__':
    run()

将上述代码保存为一个.py文件(例如file_server.py),在命令行运行该文件,即可启动一个简单的文件服务器。

当然,您可以将其它的功能加入到该脚本中。例如,您可以添加一个额外的路由来处理某些特定的请求:

from http.server import HTTPServer, SimpleHTTPRequestHandler
import urllib.parse

class MyHandler(SimpleHTTPRequestHandler):
    
    def do_GET(self):
        url_parts = urllib.parse.urlparse(self.path)
        if url_parts.path == '/special':
            self.send_response(200)
            self.send_header('Content-type', 'text/html')
            self.end_headers()
            self.wfile.write(b'Special page')
            return
        else:
            # 默认处理方式
            return SimpleHTTPRequestHandler.do_GET(self)

def run(server_class=HTTPServer, handler_class=MyHandler):
    server_address = ('', 8000)
    httpd = server_class(server_address, handler_class)
    httpd.serve_forever()

if __name__ == '__main__':
    run()

上述代码添加了一个新的路由/special,当访问该路由时,会返回一个Special page

以上就是使用Python的serve()函数实现一个简单的文件服务器的示例。您可以根据需求对其进行扩展和定制。