Python获取桌面路径与解析二维码图片的实用技巧

竹里
竹里
发布时间:2026-10-15| 5人浏览过
原创

本文介绍如何利用Python的winreg模块动态获取Windows桌面路径,避免硬编码带来的维护麻烦。同时,结合PIL和pyzbar库实现从图片中解析二维码并提取文本信息的功能,适用于批量处理包含二维码的图片文件。

前言:

在日常开发中,经常需要读取或保存文件到桌面。如果是个人使用,路径问题通常不成问题;但如果将代码分享给他人,接收者往往因为桌面路径不同而遇到报错,随后需要手动修改代码中的路径,这增加了维护成本。

这里分享一个获取桌面路径的函数,后续只需复制并调用该函数即可,无需重复编写路径逻辑。

一、winreg生成桌面路径

具体实现代码如下:

import winreg
def desktop_path():
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')
    desktop = winreg.QueryValueEx(key, "Desktop")[0]
    # print(desktop)
    return desktop
desktop_path()

首先,需要导入winreg模块。

winreg是Python的标准库之一,专门用于操作Windows注册表。

注意:在此处必须使用return语句返回desktop变量,否则Python函数默认返回None。

以下是之前需要手动指定桌面路径的代码示例:

name = input("请输入你的文件名(带后缀):")
wenjian = r"C:\Users\knighthood\OneDrive\桌面\{}".format(name)

以下是使用上述函数后的代码示例:

name = input("请输入你的文件名(带后缀):")
wenjian = "{}\{}".format(desktop_path(), name)

现在,只需输入文件名及其后缀即可,省去了查找和复制桌面路径的繁琐步骤。

二、实现扫描二维码图片返回相关信息

1、模块准备

此功能需要用到PIL和pyzbar两个模块。

2、代码解析

img = Image.open(image)

Image.open(image)用于打开并读取图片文件。

barcodes = pyzbar.decode(img)

pyzbar.decode(img)用于解析图片中的二维码信息。

由于一张图片可能包含一个或多个二维码,因此需要遍历解析结果,并将数据转换为utf-8格式。

    for barcode in barcodes:
        barcodeData = barcode.data.decode("utf-8")

最后,将上述逻辑封装为函数以便复用。

3、代码展示

文件名为QRcode_message.py。

# -*- coding: utf-8-*-
from PIL import Image
import pyzbar.pyzbar as pyzbar
 
def QRcode_message(image):
    img = Image.open(image)
    # 因为一张图片可能是一张二维码,也可能里面有许多二维码
    barcodes = pyzbar.decode(img)
    for barcode in barcodes:
        barcodeData = barcode.data.decode("utf-8")
        print(barcodeData)
 
if __name__ == '__main__':
    QRcode_message('test.jpg')

注意:待处理的图片文件必须与QRcode_message.py位于同一目录下。

到此这篇关于python利用winreg生成桌面路径及实现扫描二维码图片返回相关信息的文章就介绍到这了,更多相关python生成路径内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。