Python获取桌面路径与解析二维码图片的实用技巧
本文介绍如何利用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生成路径内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













