网络宝典
第二套高阶模板 · 更大气的阅读体验

Python生成二维码方法:手把手教你快速上手

发布时间:2026-01-19 19:40:34 阅读:156 次

你有没有遇到过这种情况?朋友开了一家小店,想做个带微信收款码的海报,又怕手写的不美观还容易出错。或者你在做活动报名系统,需要给每位参与者生成专属报名链接的二维码。这时候,用 Python 自动生成二维码就成了一个又快又准的办法。

为什么选Python来生成二维码

Python 语法简单,第三方库丰富,生成二维码这种任务对它来说轻而易举。只需要几行代码,就能把一串网址、一段文字,甚至联系方式变成一个标准的二维码图片,还能自定义颜色、大小,甚至加个Logo上去,看起来专业多了。

安装必要的库:qrcode

Python 中最常用的二维码生成库是 qrcode,它支持基本功能,使用也特别简单。打开命令行,输入下面这行命令安装:

pip install qrcode[pil]

这里加上 [pil] 是为了支持生成图片文件,因为默认的 qrcode 只能输出文本格式的二维码,加上这个扩展后就能保存为 PNG、JPG 这类常见图片了。

生成一个最简单的二维码

比如你想把“https://www.wangluobaodian.com”这个网址变成二维码,代码可以这么写:

import qrcode

# 创建二维码实例
data = "https://www.wangluobaodian.com"
img = qrcode.make(data)

# 保存为图片
img.save("qrcode.png")

运行之后,当前目录下就会出现一个叫 qrcode.png 的图片,用手机扫一扫,直接跳转到网站,方便得很。

自定义二维码样式

如果你觉得默认的黑白方块太单调,可以进一步设置参数。比如调整二维码的纠错等级、大小、边距等:

import qrcode

qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_L,
    box_size=10,
    border=4,
)

qr.add_data("欢迎访问网络宝典!")
qr.make(fit=True)

img = qr.make_image(fill_color="black", back_color="white")
img.save("custom_qr.png")

这里的 fill_colorback_color 支持颜色名称或十六进制值,比如改成 "#FF5733" 也没问题,让你的二维码更有个性。

实战小例子:生成带名字的WiFi连接码

有时候家里来客人,不想一条条说WiFi账号密码,可以直接生成一个扫码就能连的二维码。格式通常是这样的:WIFI:S:你的网络名;T:WPA;P:密码;;

import qrcode

wifi_info = "WIFI:S:MyHomeWiFi;T:WPA;P:12345678;;"

qr = qrcode.QRCode(box_size=8)
qr.add_data(wifi_info)
qr.make(fit=True)

img = qr.make_image(fill_color="blue", back_color="white")
img.save("wifi_qr.png")

打印出来贴在客厅,客人扫一下就自动连接,省事又体面。

加个Logo让二维码更醒目

如果你是为品牌或活动做二维码,可以中间加个小图标。需要用到 PIL 库来合并图像:

from PIL import Image
import qrcode

# 生成二维码
qr = qrcode.QRCode(box_size=10)
qr.add_data("https://www.wangluobaodian.com")
qr.make(fit=True)
img_qr = qr.make_image(fill_color="black", back_color="white").convert('RGBA')

# 打开要嵌入的Logo(建议小一点)
logo = Image.open('logo.png').convert('RGBA')

# 调整Logo大小
width, height = img_qr.size
logo_size = width // 5
logo = logo.resize((logo_size, logo_size))

# 计算居中位置
pos = ((width - logo_size) // 2, (height - logo_size) // 2)

# 合并图像
img_qr.paste(logo, pos, logo)
img_qr.save('qr_with_logo.png')

注意:Logo 不宜太大,否则会影响扫码识别。一般控制在二维码三分之一以内比较稳妥。

这些方法学会了,日常生活中很多场景都能用上。不管是分享链接、传递信息,还是做点小工具,Python 生成二维码既实用又有趣。