当前位置:首页>python>Python实现二维码生成与识别:从安装到实战

Python实现二维码生成与识别:从安装到实战

  • 2026-09-19 10:29:47
Python实现二维码生成与识别:从安装到实战

背景

在日常工作和开发中,二维码无处不在:扫码登录、支付、信息传递…… 如果能用Python自动生成和识别二维码,就能在测试场景中模拟扫码流程,实现自动化回归。本文将分两步介绍如何用Python实现二维码的生成和识别,并提供完整的代码示例。

01

环境准备:安装依赖

我们需要用到两个库:

- qrcode:用于生成二维码图片

- opencv-python:用于识别二维码内容

打开命令行,执行以下命令安装:

pip install qrcode[pil] opencv-python

- qrcode[pil] 中的 [pil] 会同时安装图像处理库 Pillow,用于保存图片。

- opencv-python 是 OpenCV 的 Python 绑定,自带二维码检测器。

安装完成后,就可以开始编写代码了。

02

生成二维码

以下代码会生成一张二维码图片,并保存到本地指定路径。

import qrcode import os #设置保存路径(可以改成你想要的文件夹)save_path="D:/aaaa/test.png"os.makedirs(os.path.dirname(save_path), exist_ok=True) #生成二维码 img = qrcode.make("https://www.baidu.com/")img.save(save_path)print(f"二维码已生成:{save_path}")

代码说明:

- qrcode.make(data):根据传入的文本或 URL 生成二维码图像对象。

- img.save(path):将图像保存为文件。

- os.makedirs(..., exist_ok=True):确保目录存在,避免因目录不存在而报错。

运行这段代码,会在 D:/aaaa/ 目录下生成一个名为 test.png 的二维码图片,内容为百度首页的网址。

03

识别二维码

有了二维码图片,如何读取其中的内容?OpenCV 提供了 QRCodeDetector 类,可以轻松解码。

import cv2image_path = "D:/aaaa/test.png"img = cv2.imread(image_path)if img is None:    print("无法读取图片,请检查路径")else:    detector = cv2.QRCodeDetector()    data, _, _ = detector.detectAndDecode(img)    if data:        print(f"二维码内容: {data}")    else:        print("未识别到二维码")

代码说明:

- cv2.imread(path):读取图片文件,返回 numpy 数组。如果路径错误或文件损坏,返回 None。

- cv2.QRCodeDetector():创建检测器对象。

- detectAndDecode(img):检测并解码二维码,返回解码后的字符串(如果没有检测到则返回空字符串)。

运行这段代码,会输出二维码中存储的内容,例如:

二维码内容: 

https://www.baidu.com/

04

常见问题与注意事项

1. 路径问题  

  - 如果路径包含中文,OpenCV 在某些环境下可能无法读取。建议使用纯英文路径,或使用 os.path 处理。  

  - 路径中的反斜杠 \ 在 Python 字符串中需要转义,可以写成 \\ 或使用正斜杠 /。

2. 依赖安装失败  

  - 如果 pip install qrcode[pil] 报错,可以尝试分开安装:pip install qrcode pillow。  

  - 如果 OpenCV 安装失败,可以换用 pip install opencv-python-headless(无 GUI 版本)。

3. 识别不到二维码  

  - 确保图片清晰,二维码区域完整。  

  - 如果二维码是带 Logo 或艺术化样式,可能会影响识别率,建议使用标准二维码测试。

4. 批量处理  

  - 如果需要扫描一个文件夹下的所有二维码图片,可以遍历目录,对每个文件调用 detectAndDecode。

号、处事方式等组成的其特有的文化形象,简单而言,就是企业在日常运行中所表现出的各方各面。

05

总结

通过 qrcode 和 opencv-python,实现了二维码的生成与识别。这个技能可以用于:

- 自动化测试:模拟扫码登录、扫码支付等场景。

- 数据处理:批量解析二维码中的信息。

- 工具开发:快速生成带参数的二维码供测试使用。

处事方式等组成的其特有的文化形象,简单而言,就是企业在日常运行中所表现出的各方各面。

大家关于自动化测试中二维码相关的内容有任何建议和意见欢迎给我们留言哦~

最新文章

随机文章