一、课程目标
- 掌握 Python 生成自定义样式二维码的方法;
- 学会使用 translate 库实现简单的中英文互译;
- 了解 wxauto 库实现微信自动化消息发送的基本用法;
- 熟悉 Python 中文件操作、时间控制、系统调用等基础功能的综合应用。
二、知识点拆解
模块 1:二维码生成(qrcode 库)
- qrcode 库的安装(pip install qrcode);
- QRCode 类的参数配置(version、box_size、border);
- 二维码数据添加(add_data)与图片生成(make_image);
- 自定义二维码颜色(fill_color、back_color);
- 图片保存(save)与系统调用打开图片。
模块 2:文本翻译(translate 库)
- translate 库的安装(pip install translate);
- Translator 类的初始化(源语言、目标语言设置);
- translate 方法实现文本翻译。
模块 3:微信自动化(wxauto 库)
- wxauto 库的安装(pip install wxauto);
- WeChat 类的实例化;
- SendMsg 方法实现指定对象的消息发送;
- 循环 + 时间休眠实现批量 / 定时发送消息。
模块 4:基础辅助功能
- time.sleep () 实现程序延时;
- os.system () 调用系统命令打开文件;
- 字符编码声明(# -- coding: GBK --)的作用。
三、练习题
(一)填空题(5 道)
- 使用 qrcode 库生成二维码时,
QRCode类中box_size参数的作用是__________。 - 实现程序暂停 3 秒执行的 Python 代码是__________。
- Translator 类初始化时,
from_lang="zh", to_lang="en"表示将__________翻译成__________。 - wxauto 库中,
WeChat().SendMsg(msg="内容", who="文件传输助手")的作用是__________。 - qrcode 生成的二维码图片保存使用的方法是__________。
(二)选择题(5 道)
- 以下关于 qrcode 库的 QRCode 类参数,说法错误的是()A. version 参数取值范围是 1-40B. border 参数默认值为 4,最小值为 1C. box_size 越小,二维码每个小方块的像素越大D. version 参数可省略,默认自动适配
- 要实现将英文翻译成中文,Translator 类的初始化参数正确的是()A. Translator (from_lang="en", to_lang="zh")B. Translator (from_lang="zh", to_lang="en")C. Translator (lang_from="en", lang_to="zh")D. Translator (source="en", target="zh")
- 以下代码中,能正确打开当前目录下 1217.png 文件的是()A. os.open ("1217.png")B. os.system ("1217.png")C. open ("1217.png", "r")D. qrcode.open ("1217.png")
- wxauto 库实现微信消息发送时,循环发送 5 条消息且每条间隔 2 秒,以下循环写法正确的是()A. for i in range (5): w.SendMsg ("在吗", "文件传输助手"); time.sleep (2)B. for i in 1 to 5: w.SendMsg (msg="在吗", who="文件传输助手"); time.sleep (2)C. for i in range (5): w.SendMsg ("文件传输助手", "在吗"); time.sleep (2)D. while i<5: w.SendMsg (msg="在吗", who="文件传输助手"); time.sleep (2); i+=1
- 以下关于字符编码声明
# -*- coding: GBK -*-的说法,正确的是()A. 声明后代码中只能使用 GBK 编码的字符B. 主要解决 Python2 中中文乱码问题,Python3 中可省略但建议保留C. 必须放在代码的最后一行D. 替换为# -*- coding: UTF-8 -*-后代码无法运行
(三)判断题(5 道)
- qrcode 库生成二维码时,add_data 方法只能添加网址类数据,不能添加普通文本。()
- translate 库的翻译功能需要联网才能使用。()
- time.sleep (1) 表示程序暂停 1 分钟执行。()
- wxauto 库使用前需要确保微信客户端已登录,且处于前台界面。()
- os.system () 函数可以调用系统命令,在 Windows 和 Linux 系统中打开图片的命令格式完全相同。()
(四)编程题(5 道)
- 题目:使用 qrcode 库生成一个版本为 6、box_size 为 8、边框为 2,填充色为绿色、背景色为白色,内容为 “Python 自动化学习” 的二维码,保存为 qrcode_text.png 并打开。
- 题目:编写代码,使用 translate 库实现将 “Python 是一门强大的编程语言” 翻译成英文,再将翻译结果翻译回中文并打印。
- 题目:编写代码,实现每隔 5 秒向微信 “文件传输助手” 发送一条包含当前时间的消息,共发送 3 条(提示:使用 time.ctime () 获取当前时间)。
- 题目:整合二维码生成和翻译功能,先将 “自动化测试” 翻译成英文,再将翻译后的英文作为二维码内容生成二维码,保存为 translate_qr.png。
- 题目:编写代码,实现以下逻辑:
- 生成包含 “wxauto 微信自动化” 的二维码,保存为 wx_qr.png;
- 延时 2 秒后打开该图片;
- 再延时 3 秒后,向微信文件传输助手发送 “二维码已生成,请查收” 的消息。
四、答案
(一)填空题答案
- 设置二维码每个小方块的像素大小
- time.sleep(3)
- 中文;英文
- 向微信的 “文件传输助手” 发送消息 “在吗”
- save()
(二)选择题答案
- C(box_size 越小,每个小方块像素越小)
- A(Translator 类标准参数为 from_lang 和 to_lang)
- B(os.system () 调用系统命令打开文件,open () 是读取文件内容,os.open () 是底层文件打开)
- A(range (5) 生成 0-4 的整数,对应 5 次循环;SendMsg 参数顺序是 msg 在前,who 在后;B 的 1 to 5 是 Python 不支持的语法;D 未初始化 i)
- B(Python3 默认 UTF-8 编码,GBK 声明主要兼容 Python2,声明位置需在代码第一行 / 第二行)
(三)判断题答案
- ×(add_data 可添加任意文本数据)
- √(translate 库依赖在线翻译接口)
- ×(sleep 参数单位是秒,1 表示 1 秒)
- √(wxauto 基于窗口句柄和键鼠模拟,需微信客户端登录且可见)
- ×(Windows 打开图片直接输文件名,Linux 需用 xdg-open 等命令)
(四)编程题答案
第 1 题
python
运行
# -*- coding: GBK -*- import qrcode import os import time # 配置二维码参数 qr = qrcode.QRCode( version=6, box_size=8, border=2, ) # 添加数据 qr.add_data("Python自动化学习") # 生成图片并设置颜色 img = qr.make_image(fill_color="green", back_color="white") # 保存图片 img.save("qrcode_text.png") # 延时后打开图片 time.sleep(1) os.system("qrcode_text.png")第 2 题
python
运行
# -*- coding: GBK -*- from translate import Translator # 初始化翻译器(中译英) translator_zh2en = Translator(from_lang="zh", to_lang="en") # 中译英 en_text = translator_zh2en.translate("Python是一门强大的编程语言") print("中译英结果:", en_text) # 初始化翻译器(英译中) translator_en2zh = Translator(from_lang="en", to_lang="zh") # 英译中 zh_text = translator_en2zh.translate(en_text) print("英译中结果:", zh_text)第 3 题
python
运行
# -*- coding: GBK -*- import time from wxauto import WeChat # 实例化微信对象 w = WeChat() # 循环发送3条消息 for i in range(3): # 获取当前时间 current_time = time.ctime() # 发送消息 w.SendMsg(msg=f"当前时间:{current_time}", who="文件传输助手") # 间隔5秒 time.sleep(5)第 4 题
python
运行
# -*- coding: GBK -*- import qrcode from translate import Translator # 1. 翻译“自动化测试”为英文 translator = Translator(from_lang="zh", to_lang="en") en_text = translator.translate("自动化测试") print("翻译结果:", en_text) # 2. 生成二维码 qr = qrcode.QRCode( version=5, box_size=10, border=4, ) qr.add_data(en_text) img = qr.make_image(fill_color="black", back_color="white") img.save("translate_qr.png") print("二维码已保存为translate_qr.png")第 5 题
python
运行
# -*- coding: GBK -*- import qrcode import os import time from wxauto import WeChat # 1. 生成二维码 qr = qrcode.QRCode( version=5, box_size=10, border=4, ) qr.add_data("wxauto微信自动化") img = qr.make_image(fill_color="blue", back_color="white") img.save("wx_qr.png") # 2. 延时2秒打开图片 time.sleep(2) os.system("wx_qr.png") # 3. 延时3秒发送微信消息 time.sleep(3) w = WeChat() w.SendMsg(msg="二维码已生成,请查收", who="文件传输助手")