前言
跨环境或者跨跳板机传输文件很麻烦,比如从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 argparsedef 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.SimpleHTTPRequestHandlerwith 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 同目录的文件可以通过浏览器看到了