巧用Python自带http服务实现跨平台网络文件共享

​目录

最为“电脑爱好者”熟知的跨平台网络文件共享,莫过于Samba服务了。依靠Samba,可以方便地在Unix、类Unix、Windows操作系统之间,实现文件共享。

当然,在网络的世界里,TFTP、FTP、SFTP等文件传输协议,亦为广大网络工程师所熟知,历久而弥坚。

然而,Python内置的http server却略显小众。

1、Python3开启http server服务

(1)服务指令

python3可以为当前目录开启http server,实现该目录下,文件的网络共享。

通过以下指令,python会默认开启一个端口为8000的http服务

python -m http.server

如果想更换端口,直接在指令最后加端口号即可

python -m http.server 6666

(2)效果

python3开启http server,默认端口为8000

username@usernamedeMacBookPro1 Downloads %python -m http.server Serving HTTP on :: port 8000 (http://[::]:8000/) ...

python3开启http server,手动指定端口为6666

heping@hepingdeMacBookPro1 Downloads %python -m http.server 6666 Serving HTTP on :: port 6666 (http://[::]:6666/) ...

例:查看浏览器访问效果

# 打开终端进入~/Downloads目录 cd ~/Downloads python -m http.server ​ # 用浏览器打开URL::8000 或 :8000 或 http://::1:8000

浏览器效果如下:

用safari查看该目录是否启用http server

2、文件传输试验

实验演示。利用Python3自带的http.server,完成文件的网络共享。

(1)实验说明

如图,MacOS在~/Download目录下,创建文件file1.txt、file2.txt、file3.txt,并用python3开启该目录的http server。使用Windows浏览器打开下载file3.txt文件。

实验拓扑

(2)实验操作

MacOS

username@usernamedeMacBookPro1 Downloads %pwd /Users/username/Downloads username@usernamedeMacBookPro1 Downloads % username@usernamedeMacBookPro1 Downloads %touch file{1..3}.txt username@usernamedeMacBookPro1 Downloads % username@usernamedeMacBookPro1 Downloads %ll total 0 drr-xr-x3 username staff968 172020 $RECYCLE.BIN -rw-r--r--1 username staff 037 13:26 file1.txt -rw-r--r--1 username staff 037 13:26 file2.txt -rw-r--r--1 username staff 037 13:26 file3.txt username@usernamedeMacBookPro1 Downloads % username@usernamedeMacBookPro1 Downloads %echo hello python http server > file{1..3}.txt username@usernamedeMacBookPro1 Downloads % username@usernamedeMacBookPro1 Downloads %ifconfig vmnet9 vmnet9: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:50:56:c0:00:09 inet 192.168.47.1 netmask 0xffffff00 broadcast 192.168.47.255 username@usernamedeMacBookPro1 Downloads %python -m http.server 65500 Serving HTTP on :: port 65500 (http://[::]:65500/) ...

截图查看Downloads目录

图形界面查看Downloads目录下的文件

Windows

打开windows浏览器,下载file3.txt,并展示。

查看Windows的IP地址确保和MacOS的IP地址在同一网段使用Windows的Chrome浏览器访问MacOS的http服务,注意端口号下载file3.txt文件到桌面在WIndows桌面展示下载的file3.txt文件

这样做,就很容易实现临时的文件传输。比如同寝室的大学生,需要传输一个游戏安装包给室友,那么自己就可以利用python在安装包目录中开启http server,只要自己和室友的网络互通,就可以通过http实现简单的网络共享。

惰惰猴5 次咨询5.07184 次赞同去咨询

3、网络工程师学习视频推荐

有很多使用Windows的同行,对类Unix和Python十分陌生,如果正苦于没有好的渠道入门,我推荐知乎站内的以下视频课程。该视频从GNU-Linux讲起、逐渐引入Python基础,值得一看。

Python 深入浅出进阶课程 - 知乎​www.zhihu.com/education/video-course/?section_id=​www.zhihu.com/education/video-course/?section_id=