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)
相关推荐
linghuocaishui7 分钟前
京东用工平台实践:亲测案例复盘分享
人工智能·python
你怎么知道我是队长13 分钟前
python---新年烟花
开发语言·python·pygame
智算菩萨17 分钟前
【Python机器学习】主成分分析(PCA):高维数据的“瘦身术“
开发语言·python·机器学习
540_5401 小时前
ADVANCE Day33
人工智能·python·机器学习
水龙吟啸1 小时前
基于Orbbec-Gemini深度相机与SFM-2D to 3D重建算法、手部识别视觉算法、Unity运动控制的3D水果切割游戏
python·深度学习·神经网络·c#·游戏引擎·3d视觉·3d重建
BBB努力学习程序设计2 小时前
深入理解 Python 中的深浅拷贝(Shallow Copy & Deep Copy):避免数据引用的 “坑”
python
BBB努力学习程序设计2 小时前
深入理解 Python 中的闭包(Closure):封装状态的函数式编程利器
python
澜莲花3 小时前
python图色之opencv基础---验证码实战
开发语言·python·opencv
import_random3 小时前
[python]dataframe二维数据 -- > 三维数据
python
databook3 小时前
格式塔原理:数据可视化如何引导观众的注意力
python·数据分析·数据可视化