Python 技术篇-利用pyqt5库读取剪切板已复制数据的格式类型实例演示,python判断复制文件的文件类型

时间:2022-07-25
本文章向大家介绍Python 技术篇-利用pyqt5库读取剪切板已复制数据的格式类型实例演示,python判断复制文件的文件类型,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

首先介绍下复制内容类型的几种分类: ['text/plain'] 是纯文本类型。 ['text/html', 'text/plain']html 的格式 + 文本类型,找个网页复制一段文字就可以获得这个效果。 如果是文件类型,其格式信息如下:

['application/x-qt-windows-mime;value="Shell IDList Array"', 'application/x-qt-w
indows-mime;value="DataObjectAttributes"', 'application/x-qt-windows-mime;value=
"DataObjectAttributesRequiringElevation"', 'application/x-qt-windows-mime;value=
"Shell Object Offsets"', 'application/x-qt-windows-mime;value="Preferred DropEff
ect"', 'application/x-qt-windows-mime;value="AsyncFlag"', 'text/uri-list', 'appl
ication/x-qt-windows-mime;value="FileName"', 'application/x-qt-windows-mime;valu
e="FileNameW"']

当为文件类型时,可以通过 urls() 获取文件路径:

"PyQt5.QtCore.QUrl('file:///C:/Users/Public/Pictures/Sample Pictures/Desert.jpg')"

再通过文件的扩展名可判断文件类型:

s = "PyQt5.QtCore.QUrl('file:///C:/Users/Public/Pictures/Sample Pictures/Desert.jpg')"

index1 = len(s) - s[::-1].index(".");
index2 = s.index("')");
print("提取的类型为:" + s[index1:index2])

完整代码如下:

from PyQt5.QtWidgets import *

app = QApplication([])
clipboard = app.clipboard()
data = clipboard.mimeData()

# 获取格式信息
print(data.formats())
if(data.hasFormat('text/uri-list')):
    for path in data.urls():
    	# 打印复制的路径
    	print(path)
    	# 提取字符串
    	s = str(path)
		index1 = len(s) - s[::-1].index(".");
		index2 = s.index("')");
		print("提取的类型为:" + s[index1:index2])
# 如果是纯文本类型,打印文本的值
if(data.formats() == ['text/plain']):
    print(data.text());

演示运行效果图:

演示里我复制的内容如下: