基于python3的http文件服务器
前言
跨环境或者跨跳板机传输文件很麻烦,比如从windows系统跨跳板机传输文件到linux系统,这时候scp就不适用了。
比较简单的方式是,从windows系统开一个http文件服务,然后从linux系统直接使用http链接下载。
如果是自己的环境,直接使用python3 -m http.server --bind 0.0.0.0 端口号 即可,但是如果给一个没有python环境
的windows系统使用,就需要把脚本编译成二进制文件。这里使用nuitka打包的方式。
正文
httpServer.py
import http.server
import socketserver
import argparse
def main():
# 解析命令行参数,模拟原生http.server的参数
parser = argparse.ArgumentParser(description='简易HTTP文件服务器')
parser.add_argument('port', nargs='?', type=int, default=12123,
help='端口号 (默认: 12123)')
parser.add_argument('--bind', '-b', default='0.0.0.0',
help='绑定的地址 (默认: 0.0.0.0)')
args = parser.parse_args()
# 配置服务器
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer((args.bind, args.port), Handler) as httpd:
print(f"服务器运行在 http://{args.bind}:{args.port}/")
print("按 Ctrl+C 停止服务器")
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("\n服务器正在停止...")
httpd.shutdown()
print("服务器已停止")
if __name__ == '__main__':
main()
打包
mkpkg.bat
python3 -m nuitka --onefile --output-dir=dist --enable-console .\httpServer.py
打包完成后,会在本地生成dist文件夹,其中有一个 httpServer.exe,双击运行

从浏览器访问:http://电脑ip:12123 , 可以看到 httpServer.exe 同目录的文件可以通过浏览器看到了


浙公网安备 33010602011771号