PyQt轉(zhuǎn)換路徑中的斜杠(斜杠(/)與反斜杠(\)轉(zhuǎn)換)
1.問(wèn)題背景
PyQt是寫Python圖形用戶界面(Graphical User Interface,簡(jiǎn)稱 GUI,又稱圖形用戶接口)的一大利器,但是因?yàn)槠淇缙脚_(tái)的特性,導(dǎo)致可能在Windows系統(tǒng)上使用的GUI使用的路徑是由斜杠(/)組成的,而Windows系統(tǒng)默認(rèn)使用的是反斜杠(\),如下圖:
這就會(huì)導(dǎo)致一些不可預(yù)料的錯(cuò)誤發(fā)生,如我在之前的博客里面所講:
在使用doc2docx進(jìn)行doc文件轉(zhuǎn)為docx文件時(shí),在獲取用戶需要處理的路徑后調(diào)用doc2docx,在高版本pywin32中,已經(jīng)不支持傳入的路徑由斜杠組成了,會(huì)引發(fā)pywintypes.com_error報(bào)錯(cuò)(老版本221可以支持斜杠組成的文件路徑):
Traceback (most recent call last):
File "C:\Users\Jayce\Anaconda3\envs\tf1.7\lib\site-packages\IPython\core\interactiveshell.py", line 3343, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-2-f52e8eccf39d>", line 1, in <module>
runfile('E:/Code/Python/doc2docx.py', wdir='E:/Code/Python')
File "C:\Program Files\JetBrains\PyCharm 2020.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File "C:\Program Files\JetBrains\PyCharm 2020.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "E:/Code/Python/doc2docx.py", line 30, in <module>
doc2docx(doc_path, docx_path)
File "E:/Code/Python/doc2docx.py", line 15, in doc2docx
doc = word.Documents.Open(doc_name)
File "<COMObject <unknown>>", line 8, in Open
pywintypes.com_error: (-2147352567, '發(fā)生意外。', (0, 'Microsoft Word', '很抱歉,找不到您的文件。該項(xiàng)目是否已移動(dòng)、重命名或刪除?\r (E:\\//Win10/Datasets/Test%20sample/提取圖...)', 'wdmain11.chm', 24654, -2146823114), None)
2.解決方案
2.1.斜杠轉(zhuǎn)反斜杠( / 轉(zhuǎn) \ )
使用QtCore.QDir.toNativeSeparators方法:
from PyQt5 import QtCore # word操作庫(kù)只支持反斜杠,所以需要將QT拿到的正斜杠(/)轉(zhuǎn)反斜杠(\) doc_path = r'E:/Win10/Datasets/Test sample/提取圖片/tmp.doc' print('原始路徑:{}'.format(doc_path)) path = QtCore.QDir.toNativeSeparators(doc_path) print('轉(zhuǎn)換后路徑:{}'.format(path))
可以看到成功轉(zhuǎn)化:
2.2.反斜杠轉(zhuǎn)斜杠( \ 轉(zhuǎn) / )
使用QtCore.QDir.fromNativeSeparators方法:
# 反斜杠(\)轉(zhuǎn)正斜杠(/) doc_path = r'E:\Win10\Datasets\Test sample\提取圖片\tmp.doc' print('原始路徑:{}'.format(doc_path)) path = QtCore.QDir.fromNativeSeparators(doc_path) print('轉(zhuǎn)換后路徑:{}'.format(path))
可以看到成功轉(zhuǎn)化:
到此這篇關(guān)于PyQt轉(zhuǎn)換路徑中的斜杠(斜杠(/)與反斜杠(\)轉(zhuǎn)換)的文章就介紹到這了,更多相關(guān)PyQt轉(zhuǎn)換路徑斜杠內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談Python 中整型對(duì)象的存儲(chǔ)問(wèn)題
這篇文章主要介紹了淺談Python 中整型對(duì)象的存儲(chǔ)問(wèn)題的相關(guān)資料,需要的朋友可以參考下2016-05-05python使用opencv在Windows下調(diào)用攝像頭實(shí)現(xiàn)解析
這篇文章主要介紹了python使用opencv在Windows下調(diào)用攝像頭實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11OpenCV特征提取與檢測(cè)之Shi-Tomasi角點(diǎn)檢測(cè)器
在角點(diǎn)檢測(cè)的世界里哈瑞斯無(wú)疑是最重要的方法之一,但Shi-Tomasi作為改進(jìn)的算法也有很大應(yīng)用場(chǎng)景,尤其是動(dòng)態(tài)跟蹤用的還比較多,這篇文章主要給大家介紹了關(guān)于OpenCV特征提取與檢測(cè)之Shi-Tomasi角點(diǎn)檢測(cè)器的相關(guān)資料,需要的朋友可以參考下2021-08-08pygame實(shí)現(xiàn)俄羅斯方塊游戲(AI篇2)
這篇文章主要為大家詳細(xì)介紹了pygame實(shí)現(xiàn)俄羅斯方塊游戲AI的第2篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10python實(shí)現(xiàn)最短路徑的實(shí)例方法
在本篇內(nèi)容里小編給大家整理的是關(guān)于python實(shí)現(xiàn)最短路徑的實(shí)例方法,有需要的朋友們可以參考下。2020-07-07Python自動(dòng)化測(cè)試ConfigParser模塊讀寫配置文件
本文主要介紹Python自動(dòng)化測(cè)試,這里詳細(xì)說(shuō)明了ConfigParser模塊讀寫配置文件,有興趣的小伙伴可以參考下2016-08-08python+opencv+caffe+攝像頭做目標(biāo)檢測(cè)的實(shí)例代碼
今天小編就為大家分享一篇python+opencv+caffe+攝像頭做目標(biāo)檢測(cè)的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08