使用Python的文件共享应用程序
计算机网络 是一个重要的主题,要理解这些概念,需要实际应用这些概念。在这篇特别的文章中,我们将了解如何使用 Python制作一个简单的文件共享 Web 服务器是理解URL(网址)和HTTP(用于查看网页的协议)的软件。Python 有几个包,它们是模块的集合。它有几个内置服务器。该项目中使用的模块是:
- HTTPServer是一个套接字服务器,它创建并侦听HTTP 套接字。
- 套接字服务器模块简化了编写网络服务器的任务。
- webbrowser模块为我们提供了一个高级接口来允许和显示基于 Web 的文档,只需调用 open() 函数即可。
- pyqrcode模块只需两行代码即可生成QR 码。
- OS 模块有助于与操作系统交互。用于在命令行上打开文件、操作路径以及读取所有文件中的所有行。
- PyPNG允许使用纯 Python 读取和写入 PNG 图像文件
分步方法:
- 安装第三方模块:
pip install pyqrcode
pip install pypng
- 在命令行中使用 pip install 安装依赖项。
- 导入必要的模块:
- http.server和socketserver:托管在浏览器中。
- pyqrcode:生成二维码。
- png:将 QRCode 转换为 png 文件。
- 操作系统:与操作系统交互。
- 指定用户的端口和名称。
- 找到PC的IP地址并将其转换为二维码。
- 创建 HTTP 请求。
- 在浏览器中显示二维码。
程序实现:
# 导入必要的模块
# 用于实现HTTP Web服务器
import http.server
# 提供对BSD套接字接口的访问
import socket
# 网络服务器框架
import socketserver
# 向用户显示基于网络的文件
import webbrowser
# 生成 qrcode
import pyqrcode
from pyqrcode import QRCode
# 转换为 png 格式
import png
# 访问操作系统控制
import os
# 分配适当的端口值
PORT = 8010
# 这将找到计算机用户的名称
os.environ['USERPROFILE']
# 更改目录以访问文件桌面
# 借助操作系统模块
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']),
'OneDrive')
os.chdir(desktop)
# 创建一个 http 请求
Handler = http.server.SimpleHTTPRequestHandler
# 返回执行 Python 解释器的系统的主机名
# 执行 Python 解释器的系统主机名
hostname = socket.gethostname()
# 查找电脑的 IP 地址
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
IP = "http://" + s.getsockname()[0] + ":" + str(PORT)
link = IP
# 将 IP 地址转换成 QR 码的形式
# 借助 pyqrcode 模块
# 将 IP 地址转换为 Qrcode
url = pyqrcode.create(link)
# 保存 svg 的 Qrcode 信息
url.svg("myqr.svg", scale=8)
# 在网络浏览器中打开 Qrcode 图像
webbrowser.open('myqr.svg')
# 创建 HTTP 请求,并为 PORT 8010 中的 # 文件夹提供服务。
# 在端口 8010 的文件夹中,并生成 pyqrcode
# 客户端和服务器之间的连续数据流
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("serving at port", PORT)
print("Type this in your Browser", IP)
print("or Use the QRCode")
httpd.serve_forever()
输出:
- 在PC上打开包含上述代码的python文件。
- 这将生成一个二维码。
- 扫描二维码或在移动浏览器中输入 python shell 中显示的 IP 地址。
示例:
为什么是8010端口?
TCP 端口 8010 使用定义的协议根据应用程序进行通信。协议是一组正式的规则,解释数据如何通过网络进行通信。这是安全的。
解释:
- 该代码通过OS module查找 USERPROFILE 的名称。并更改目录以访问桌面上的文件。
- 查找主机名以在特定端口中提供文件以进行安全共享。
- 然后找到系统的IP地址,以便我们可以连接特定的设备。
- 使用模块pyqrcode将 IP 地址转换为二维码的形式,以方便使用。
- 生成的图像托管在网络浏览器中。
- 一旦设备连接到同一网络,扫描二维码或输入IP地址就可以访问系统的文件。