使用Python的文件共享应用程序

小白学Python - 使用Python的文件共享应用程序_IP

计算机网络 是一个重要的主题,要理解这些概念,需要实际应用这些概念。在这篇特别的文章中,我们将了解如何使用 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 - 使用Python的文件共享应用程序_服务器_02

  • 扫描二维码或在移动浏览器中输入 python shell 中显示的 IP 地址。

示例:

小白学Python - 使用Python的文件共享应用程序_Python_03

为什么是8010端口? 

TCP 端口 8010 使用定义的协议根据应用程序进行通信。协议是一组正式的规则,解释数据如何通过网络进行通信。这是安全的。

解释:

  • 该代码通过OS module查找 USERPROFILE 的名称。并更改目录以访问桌面上的文件。
  • 查找主机名以在特定端口中提供文件以进行安全共享。
  • 然后找到系统的IP地址,以便我们可以连接特定的设备。
  • 使用模块pyqrcode将 IP 地址转换为二维码的形式,以方便使用。
  • 生成的图像托管在网络浏览器中。
  • 一旦设备连接到同一网络,扫描二维码或输入IP地址就可以访问系统的文件。