Python 生成二维码并操作文件笔记

一、核心知识点梳理

(一)重点内容

  1. 第三方库 qrcode :用于生成二维码,核心函数qrcode.make()接收字符串(如 URL)生成二维码对象,save()方法将二维码保存为图片文件(支持 png/jpg 等格式)。
  2. time 模块time.sleep(seconds)实现程序暂停,参数为秒数,用于控制程序执行节奏。
  3. os 模块os.system(command)执行系统命令,此处用于直接打开生成的图片文件(跨平台注意:Windows 直接传文件名可打开,Linux/macOS 需加open/xdg-open等命令)。
  4. 文件操作基础 :生成的文件保存在当前工作目录,可通过os.getcwd()查看当前路径。

(二)难点解析

  1. 跨平台兼容性问题
    • Windows 系统:os.system("1.png")可直接调用默认图片查看器打开;
    • Linux 系统:需改为os.system("xdg-open 1.png")
    • macOS 系统:需改为os.system("open 1.png")
  2. qrcode 库依赖 :安装 qrcode 库时可能需依赖 PIL(Pillow)库,需先执行pip install qrcode[pil],否则生成图片会报错。
  3. 路径问题 :若指定保存路径(如save("D:/test/1.png")),需确保目标文件夹已存在,否则会抛出文件不存在异常。

(三)高频考点

  1. qrcode.make()save()方法的使用格式;
  2. time.sleep()的参数类型和功能;
  3. os.system()的作用及跨平台适配;
  4. 第三方库的安装方式(pip install);
  5. 程序执行流程(生成二维码→暂停→打开文件)。

二、练习题

(一)填空题(10 道)

  1. 生成二维码需导入的第三方库是________。
  2. qrcode.make("内容").save("文件名")中,save方法的作用是________。
  3. time.sleep(5)表示程序暂停________秒。
  4. 执行系统命令的 os 模块函数是________。
  5. 安装 qrcode 库并解决 PIL 依赖的命令是________。
  6. 在 Linux 系统中,打开 1.png 文件的 os.system 命令是________。
  7. os.getcwd()的功能是________。
  8. 若要将二维码保存到 D 盘 test 文件夹,需确保________已存在。
  9. 代码qrcode.make("http://www.baidu.com/")返回的是________对象。
  10. 使程序暂停的 time 模块函数是________。

(二)选择题(10 道)

  1. 以下哪个命令可以正确安装 qrcode 并解决图片生成依赖?()A. pip install qrcodeB. pip install qrcode [pil]C. pip install pilD. pip install qrcode-pil

  2. time.sleep()的参数类型不能是?()A. 整数 B. 浮点数 C. 字符串 D. 0

  3. Windows 系统中,使用 os.system 打开 1.png 的正确写法是?()A. os.system ("open 1.png")B. os.system ("1.png")C. os.system ("xdg-open 1.png")D. os.system ("start 1.png")

  4. 以下关于 qrcode.make () 的说法错误的是?()A. 可接收字符串作为参数B. 可生成包含 URL 的二维码C. 直接返回图片文件D. 返回的对象可调用 save 方法

  5. 执行os.system("1.png")报错,不可能的原因是?()A. 当前目录无 1.png 文件B. 未安装 qrcode 库C. 系统无默认图片查看器D. 文件权限不足

  6. 以下代码的执行顺序正确的是?()

    python

    运行

    复制代码
    import time
    import qrcode
    qrcode.make("test").save("2.png")
    time.sleep(3)
    import os
    os.system("2.png")

    A. 导入 time→导入 qrcode→生成二维码→暂停→导入 os→打开文件B. 导入 time→导入 qrcode→导入 os→生成二维码→暂停→打开文件C. 导入 time→生成二维码→导入 qrcode→暂停→导入 os→打开文件D. 导入 time→导入 qrcode→生成二维码→导入 os→暂停→打开文件

  7. 要查看 Python 程序当前的工作目录,应使用哪个函数?()A. os.path () B. os.cwd () C. os.getcwd () D. os.current ()

  8. 以下哪种情况会导致qrcode.make().save()报错?()A. 保存路径为不存在的文件夹B. 保存的文件名为 "3.jpg"C. make 的参数为空字符串D. 保存的文件已存在

  9. os.system()函数的返回值表示?()A. 命令执行的输出内容B. 命令执行是否成功(0 为成功)C. 被执行文件的路径D. 系统进程 ID

  10. 若要让程序暂停 1.5 秒,正确的写法是?()A. time.sleep (1.5) B. time.pause (1.5)C. sleep (1.5) D. time.wait (1.5)

(三)编程题(10 道)

  1. 编写程序,生成包含 "我的 Python 笔记" 的二维码,保存为 note.png,暂停 2 秒后打开该文件(适配 Windows 系统)。
  2. 优化基础代码,实现跨平台打开图片(判断系统类型,Windows 用默认方式,Linux 用 xdg-open,macOS 用 open)。
  3. 编写程序,生成包含用户输入内容的二维码,文件名自定义(由用户输入),暂停 10 秒后打开。
  4. 编写程序,批量生成 3 个二维码,分别包含 "URL1: http://www.taobao.com"、"URL2: http://www.jd.com"、"URL3: http://www.pdd.com",保存为 url1.png、url2.png、url3.png,全部生成后暂停 5 秒,依次打开这 3 个文件。
  5. 编写程序,生成二维码并保存到指定路径(如 D:/qrcode/),若路径不存在则自动创建,暂停 3 秒后打开文件。
  6. 编写程序,生成二维码后,先打印 "二维码生成成功,5 秒后打开",再暂停 5 秒,最后打开文件。
  7. 编写程序,接收命令行参数作为二维码内容,生成并保存为 qrcode.png,暂停 1 秒后打开。
  8. 编写程序,生成包含当前时间(格式:2025-12-10 10:00:00)的二维码,保存为 time_qr.png,暂停 4 秒后打开。
  9. 编写程序,生成二维码后,检查文件是否存在,若存在则打开,不存在则打印 "文件生成失败"。
  10. 封装功能为函数:定义generate_qr(content, filename, sleep_time),实现生成指定内容的二维码、保存为指定文件名、暂停指定时间后打开文件,调用该函数生成包含 "Python 编程" 的二维码,保存为 python.png,暂停 3 秒后打开。

三、答案参考

(一)填空题答案

  1. qrcode
  2. 将生成的二维码保存为指定名称的图片文件
  3. 5
  4. os.system()
  5. pip install qrcode[pil]
  6. os.system("xdg-open 1.png")
  7. 获取当前工作目录的路径
  8. D:/test 文件夹
  9. 二维码(QRCode)
  10. time.sleep()

(二)选择题答案

1.B 2.C 3.B 4.C 5.B 6.A 7.C 8.A 9.B 10.A

(三)编程题参考代码

第 1 题

python

运行

复制代码
import qrcode
import time
import os

# 生成二维码
qr_img = qrcode.make("我的Python笔记")
qr_img.save("note.png")

# 暂停2秒
time.sleep(2)

# 打开文件(Windows)
os.system("note.png")
第 2 题

python

运行

复制代码
import qrcode
import time
import os
import platform

# 生成二维码
qr_img = qrcode.make("http://www.baidu.com/")
qr_img.save("1.png")
time.sleep(5)

# 判断系统类型
sys_type = platform.system()
if sys_type == "Windows":
    os.system("1.png")
elif sys_type == "Linux":
    os.system("xdg-open 1.png")
elif sys_type == "Darwin":  # macOS
    os.system("open 1.png")
else:
    print("不支持的操作系统")
第 3 题

python

运行

复制代码
import qrcode
import time
import os

# 获取用户输入
content = input("请输入二维码内容:")
filename = input("请输入保存的文件名(如test.png):")

# 生成并保存二维码
qr_img = qrcode.make(content)
qr_img.save(filename)

# 暂停10秒
time.sleep(10)

# 打开文件(Windows)
os.system(filename)
第 4 题

python

运行

复制代码
import qrcode
import time
import os

# 定义二维码内容列表
contents = [
    "URL1: http://www.taobao.com",
    "URL2: http://www.jd.com",
    "URL3: http://www.pdd.com"
]

# 批量生成二维码
for i, content in enumerate(contents, 1):
    qr_img = qrcode.make(content)
    qr_img.save(f"url{i}.png")

# 暂停5秒
time.sleep(5)

# 依次打开文件(Windows)
for i in range(1, 4):
    os.system(f"url{i}.png")
    time.sleep(1)  # 间隔1秒打开
第 5 题

python

运行

复制代码
import qrcode
import time
import os

# 指定保存路径
save_path = "D:/qrcode/"
# 检查路径是否存在,不存在则创建
if not os.path.exists(save_path):
    os.makedirs(save_path)

# 生成并保存二维码
qr_img = qrcode.make("指定路径测试")
file_path = os.path.join(save_path, "test.png")
qr_img.save(file_path)

# 暂停3秒
time.sleep(3)

# 打开文件(Windows)
os.system(file_path)
第 6 题

python

运行

复制代码
import qrcode
import time
import os

# 生成二维码
qr_img = qrcode.make("Python二维码测试")
qr_img.save("test.png")

# 打印提示信息
print("二维码生成成功,5秒后打开")

# 暂停5秒
time.sleep(5)

# 打开文件(Windows)
os.system("test.png")
第 7 题

python

运行

复制代码
import qrcode
import time
import os
import sys

# 获取命令行参数(第一个参数是脚本名,第二个是内容)
if len(sys.argv) < 2:
    print("请传入二维码内容作为命令行参数")
    sys.exit(1)
content = sys.argv[1]

# 生成二维码
qr_img = qrcode.make(content)
qr_img.save("qrcode.png")

# 暂停1秒
time.sleep(1)

# 打开文件(Windows)
os.system("qrcode.png")
第 8 题

python

运行

复制代码
import qrcode
import time
import os
from datetime import datetime

# 获取当前时间并格式化
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# 生成二维码
qr_img = qrcode.make(current_time)
qr_img.save("time_qr.png")

# 暂停4秒
time.sleep(4)

# 打开文件(Windows)
os.system("time_qr.png")
第 9 题

python

运行

复制代码
import qrcode
import time
import os

# 生成二维码
qr_img = qrcode.make("文件检查测试")
qr_img.save("check.png")

# 暂停3秒
time.sleep(3)

# 检查文件是否存在
if os.path.exists("check.png"):
    os.system("check.png")
else:
    print("文件生成失败")
第 10 题

python

运行

复制代码
import qrcode
import time
import os

def generate_qr(content, filename, sleep_time):
    """
    生成二维码并打开
    :param content: 二维码内容
    :param filename: 保存的文件名
    :param sleep_time: 暂停时间(秒)
    """
    # 生成二维码
    qr_img = qrcode.make(content)
    qr_img.save(filename)
    
    # 暂停
    time.sleep(sleep_time)
    
    # 打开文件(Windows)
    os.system(filename)

# 调用函数
generate_qr("Python编程", "python.png", 3)
相关推荐
yeshihouhou2 小时前
redis(hash)使用场景
redis·python·哈希算法
wjykp2 小时前
第七章二 :文件操作
python
BoBoZz192 小时前
ExtractData 椭球的并集与函数的裁剪
python·vtk·图形渲染·图形处理
monster000w2 小时前
容器云2.7pytorch版本安装问题
人工智能·pytorch·python
Cherry的跨界思维2 小时前
19、自动化处理双核心:Java规则引擎与Python Selenium实战全解析
java·开发语言·python·自动化·办公自动化·python办公自动化·python办公
互亿无线明明3 小时前
国际短信通知服务:如何为全球业务构建稳定的跨国消息触达体系?
java·c语言·python·php·objective-c·ruby·composer
相思半3 小时前
数据偏见去偏方法系统方法论学习(基础知识+实践运用)-新手友好版
大数据·人工智能·python·深度学习·机器学习·数据分析
黑客思维者3 小时前
Python自动化测试Pytest/Unittest深度解析与接口测试落地实践
开发语言·python·pytest·unittest
鲁邦通物联网3 小时前
工业边缘网关+Python:实现PLC数据采集的微服务化
python·数据采集·工业数据采集·边缘网关·边缘计算网关·5g数采