PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换)

 更新时间:2022年07月19日 15:00:58   作者:Jayce~  
本文主要介绍了PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.问题背景        

PyQt是写Python图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)的一大利器,但是因为其跨平台的特性,导致可能在Windows系统上使用的GUI使用的路径是由斜杠(/)组成的,而Windows系统默认使用的是反斜杠(\),如下图:

这就会导致一些不可预料的错误发生,如我在之前的博客里面所讲:

Python提取Word中的图片

在使用doc2docx进行doc文件转为docx文件时,在获取用户需要处理的路径后调用doc2docx,在高版本pywin32中,已经不支持传入的路径由斜杠组成了,会引发pywintypes.com_error报错(老版本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, '发生意外。', (0, 'Microsoft Word', '很抱歉,找不到您的文件。该项目是否已移动、重命名或删除?\r (E:\\//Win10/Datasets/Test%20sample/提取图...)', 'wdmain11.chm', 24654, -2146823114), None)

2.解决方案

2.1.斜杠转反斜杠( / 转 \ )

使用QtCore.QDir.toNativeSeparators方法:

from PyQt5 import QtCore
 
# word操作库只支持反斜杠,所以需要将QT拿到的正斜杠(/)转反斜杠(\)
doc_path = r'E:/Win10/Datasets/Test sample/提取图片/tmp.doc'
print('原始路径:{}'.format(doc_path))
path = QtCore.QDir.toNativeSeparators(doc_path)
print('转换后路径:{}'.format(path))

可以看到成功转化:

2.2.反斜杠转斜杠( \ 转 / )

使用QtCore.QDir.fromNativeSeparators方法: 

# 反斜杠(\)转正斜杠(/)
doc_path = r'E:\Win10\Datasets\Test sample\提取图片\tmp.doc'
print('原始路径:{}'.format(doc_path))
path = QtCore.QDir.fromNativeSeparators(doc_path)
print('转换后路径:{}'.format(path))

可以看到成功转化:

到此这篇关于PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换)的文章就介绍到这了,更多相关PyQt转换路径斜杠内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中enumerate函数代码解析

    Python中enumerate函数代码解析

    这篇文章主要介绍了Python中enumerate函数代码解析,涉及函数说明以及相关示例,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • python中list循环语句用法实例

    python中list循环语句用法实例

    这篇文章主要介绍了python中list循环语句用法,以实例形式详细介绍了Python针对list的解析,包含各种常见的遍历操作及原理分析,需要的朋友可以参考下
    2014-11-11
  • OpenCV如何去除图片中的阴影的实现

    OpenCV如何去除图片中的阴影的实现

    这篇文章主要介绍了OpenCV如何去除图片中的阴影的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • pytorch geometric的GNN、GCN的节点分类方式

    pytorch geometric的GNN、GCN的节点分类方式

    这篇文章主要介绍了pytorch geometric的GNN、GCN的节点分类方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Python把对应格式的csv文件转换成字典类型存储脚本的方法

    Python把对应格式的csv文件转换成字典类型存储脚本的方法

    今天小编就为大家分享一篇Python把对应格式的csv文件转换成字典类型存储脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python+tkinter模拟“记住我”自动登录实例代码

    Python+tkinter模拟“记住我”自动登录实例代码

    这篇文章主要介绍了Python+tkinter模拟“记住我”自动登录实例代码,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • Python中Django发送带图片和附件的邮件

    Python中Django发送带图片和附件的邮件

    本篇文章主要介绍了Python中Django发送带图片和附件的邮件 ,非常具有实用价值,需要的朋友可以参考下。
    2017-03-03
  • numpy多维数组索引问题

    numpy多维数组索引问题

    这篇文章主要介绍了numpy多维数组索引的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Django REST 异常处理详解

    Django REST 异常处理详解

    这篇文章主要介绍了Django REST 异常处理详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • wxpython绘制圆角窗体

    wxpython绘制圆角窗体

    这篇文章主要为大家详细介绍了wxpython绘制圆角窗体,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11

最新评论