[Python]跟着代码去学习---二维码1:批量生成二维码

二维码在生活的使用场景与频率是越来越高了,以前的主要应用在支付、点餐、取快递等各场景,现在因为疫情的影响,行程码、核酸码、各地健康码等应时而生,相比于传统的条形码,其能承载更多的信息,二维码的历史及原理不是我们今天的重点,感兴趣的小伙伴可以自行google;今天我们就来看一下,如何在Python环境下生成我们想要的二维码。

1.安装模块:

pip install qrcode

验证:

D:\code\wusuowei>pip show qrcode
Name: qrcode
Version: 7.3.1
Summary: QR Code image generator
Home-page: https://github.com/lincolnloop/python-qrcode
Author: Lincoln Loop
Author-email: info@lincolnloop.com
License: BSD
Location: d:\software_install\python39\lib\site-packages
Requires: colorama
Required-by:

使用命令pip show qrcode,查看是否安装成,如果输出上面信息就代表我们成功安装了qrcode模块,信息里面包含了模块的名称、版本号、总结描述、主页、作者及其联系方式等诸多信息;

2. 第一个二维码

代码:

​`import qrcode

def gen_image(text, name):
img = qrcode.make(text)
with open(name, ‘wb’) as f:
img.save(f)


if name == ‘main’:
test = ‘I love China’
test_png_name = ‘test.png’
gen_image(test, test_png_name)

解读:

第1行:引入模块:qrcode ,这一步是建立在安装成功的基础之上的

第3行:定义了一个函数gen_image,这个函数所需两个参数:

  • text:待转换的文本;

  • name:待生成二维码图片的文件名;

第4行:​img:二维码数据信息​;

第5~6行​:将数据信息写入图片​并保存;

第9行:if __name__ == '__main__': :控制代码执行,固定格式;

第10行:定义了一个变量test,待转换的文本,变量值为: ‘I love China’;

第11行:定义了一个变量test_png_name ,生成文件的名称,变量值为:‘test.png’;

第12行:调用函数gen_image(test, test_png_name) ,并将刚定义的两个变量作为参数传值;

以上就是代码的解析,接下来我们就要运行代码获取结果了:

结果:

​验证两个点:

二维码图片生成:
二维码信息正确​;
在这里插入图片描述
由上可以看到我们的图片及二维码都成功生成了,验证二维码信息,我们可以通过手机浏览器扫描模式读取二维码信息,下图就是我扫描获取的结果:在这里插入图片描述

3.动态根据自己输入信息生成二维码

这里需要借助input函数获取录入值的数据信息

代码:

import qrcode
​
​
def gen_image(url, name):
    img = qrcode.make(url)
    with open(name, 'wb') as f:
        img.save(f)
​
​
if __name__ == '__main__':
    # test = 'I love China'
    # test_png_name = 'test.png'
    test = input("请输入要转换的数据: ")
    test_png_name = input("请输入保存的文件名(例如:test.png): ")
    gen_image(test, test_png_name)

解读:

第1~~12行:都是原来的,我们在这没做任何修改,只是把第11~12行代码注释掉了,这两行不会参与执行​;

第13行:借助input函数获取键盘录入信息​,即要转换的数据,并将其赋值给test :

第14行:借助input函数获取键盘录入信息,即要保存的文件名,并将其赋值给test_png_name :

第15行​:调用函数,跟之前一样未做变更​;

结果:

运行代码,会有信息录入提示,录入正确信息​:

在这里插入图片描述

​生成的结果:

验证点和之前一样这里不再赘述​;在这里插入图片描述
在这里插入图片描述
这样的话,我们就可以轻松的根据自己想要转换的值直接录入就能生成二维码图片,需要强调的是我们在两个input函数都没做数据校验,也是其中隐藏的一个bug,接下来我们再对这部分做下功能丰富​;

4.增加数据校验

代码:

import qrcode
​
​
def gen_image(url, name):
    img = qrcode.make(url)
    with open(name, 'wb') as f:
        img.save(f)
​
​
if __name__ == '__main__':
    # test = 'I love China'
    # test_png_name = 'test.png'
    test = input("请输入要转换的数据: ")
    if not test:
        raise ValueError("未录入待转换的数据")
    print("如果不录入生成文件名,默认:test.png")
    test_png_name = input("请输入保存的文件名(例如:test.png): ")
    test_png_name = 'test.png' if not test_png_name else test_png_name
    gen_image(test, test_png_name)

解读:
第112行:都是原来的,我们在这没做任何修改,只是把第1112行代码注释掉了,这两行不会参与执行;

第13~15行:

第13行:接收键盘录入数据;

第14~15行​:​数据校验:如果test​为空抛出异常,异常信息为:“未录入待转换的数据”;

第16行​:下一步的打印提示​;,无实际功能

第17行​:接收键盘录入数据;

第18行:数据校验:如果test_png_name 为空,则​用默认值:test.png, 如果不为空就使用录入的信息作为文件名

结果:
​场景一:未录入待转换数据:

请输入要转换的数据: 
Traceback (most recent call last):
  File "D:\code\wusuowei\python_img\batchQrcode.py", line 15, in <module>
    raise ValueError("未录入待转换的数据")
ValueError: 未录入待转换的数据

在这里插入图片描述

本节我们就简单的做了下最简单二维码的生成与人机交互下生成二维码,并针对代码的每一行都做了详细的解释;

感兴趣的大家可以自己手动敲下代码找下感觉,跟着代码去学习~

有问题欢迎留言,也可以关注微信公众号:魔都吴所谓,获取最新文章及答疑~~~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔都吴所谓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值