Python其他

python 建立文件服务器

概述


Python 内部集成了很多有趣的工具,今天我们来研究一下如何使用 python 内置的下载服务器来传输文件,在这里我们将学习到:

  • 1秒钟启动一个服务器
  • 使用浏览器或者下载命令下载服务器上的文件

建立服务器


切换到存储文件的目录,在 windows 或者 linux 下输入下述命令启动一个服务器:
若当前系统使用的是 python3 以下版本,使用的命令是:

python -m SimpleHTTPServer

若当前系统使用的是 python3,使用的命令是:

python -m http.server

输入上述命令就会在当前目录启动一个文件下载服务器,默认使用 8000 端口。建立服务器后,只需将 IP 地址和 端口号告诉想要在该服务器上下载文件的朋友,让朋友使用浏览器或者命令去下载文件即可,非常方便。
示例:

$ python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

注意:在哪个目录(或者叫文件夹)运行上述命令,就会将该目录的内容作为服务器下载页面的根目录。输入命令 python3 -m http.server -h获取该命令的更多帮助信息。

使用浏览器下载服务器上的文件


服务器建立后,我们可以使用同局域网下的手机、电脑上的浏览器打开服务器上的下载界面:
(如果你不知道自己电脑的 IP 地址,可尝试登陆路由器查看或者输入命令 ifconfig 命令查看)

是的,当前界面十分简洁。我们看到了当前目录下可以下载的文件的列表,点击列表即可启动下载,真方便!
如果你了解 HTML 语法,可以在当前目录写一个名为 index.html 的文件,当使用浏览器打开下载页面时,将默认显示该 index.html 文件的内容,比如给心仪的女孩子做个告白动画啦,嘿嘿。

使用 wget 命令下载文件


如果你的设备没有屏幕,或者没有浏览器,你可以使用命令来下载服务器上的文件。linux 下的 wget 命令可以完成这个工作:

$ wget http://192.168.0.102:8000/使用pytons打造命令行工具.md
正在连接 192.168.0.102:8000... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 471 [text/markdown]
正在保存至: “使用pytons打造命令行工具.md”

使用pytons打造命令  100%[===================>]     471  --.-KB/s    用时 0.007s

2021-10-17 00:25:11 (67.0 KB/s) - 已保存 “使用pytons打造命令行工具.md” [471/471])

看,下载文件 0.007s 就完成了,真快。wget 命令的功能很强大,感兴趣的小伙伴可以借此机会研究学习一下。