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 sample/提取图...)', '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转换路径斜杠内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换)的更多相关文章

  1. 关于opencv读取和写入路径有汉字的处理方式

    这篇文章主要介绍了关于opencv读取和写入路径有汉字的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  2. java实现下载文件到默认浏览器路径

    这篇文章主要介绍了java实现下载文件到默认浏览器路径,具有很好的参考价值,希望对的大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. nodejs的路径问题的解决

    这篇文章主要介绍了nodejs的路径问题的解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  4. JS中URL.createObjectURL使用示例讲解

    URL.createObjectURL()方法会根据传入的参数创建一个指向该参数对象的URL. 这个URL的生命仅存在于它被创建的这个文档里. 新的对象URL指向执行的File对象或者是Blob对象,这篇文章主要给大家介绍了关于JS中URL.createObjectURL使用的相关资料,需要的朋友可以参考下

  5. 教你使用pyqt实现桌面歌词功能

    最近无事看到了电脑桌面又想到了最近入门的pyqt5,所以下面这篇文章主要给大家介绍了关于如何使用pyqt实现桌面歌词功能的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  6. 在SpringBoot中配置Thymeleaf的模板路径方式

    这篇文章主要介绍了在SpringBoot中配置Thymeleaf的模板路径方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. thinkphp表单上传文件并将文件路径保存到数据库中

    这篇文章主要介绍了thinkphp表单上传文件并将文件路径保存到数据库中的相关资料,需要的朋友可以参考下

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

    本文主要介绍了PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  9. nodejs取得当前执行路径的方法

    今天小编就为大家分享一篇nodejs取得当前执行路径的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  10. Angular CLI发布路径的配置项浅析

    这篇文章主要给大家介绍了关于Angular CLI发布路径的配置项的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

随机推荐

  1. 10 个Python中Pip的使用技巧分享

    众所周知,pip 可以安装、更新、卸载 Python 的第三方库,非常方便。本文小编为大家总结了Python中Pip的使用技巧,需要的可以参考一下

  2. python数学建模之三大模型与十大常用算法详情

    这篇文章主要介绍了python数学建模之三大模型与十大常用算法详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感想取得小伙伴可以参考一下

  3. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  4. 使用pyinstaller打包.exe文件的详细教程

    PyInstaller是一个跨平台的Python应用打包工具,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,下面这篇文章主要给大家介绍了关于使用pyinstaller打包.exe文件的相关资料,需要的朋友可以参考下

  5. 基于Python实现射击小游戏的制作

    这篇文章主要介绍了如何利用Python制作一个自己专属的第一人称射击小游戏,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手试一试

  6. Python list append方法之给列表追加元素

    这篇文章主要介绍了Python list append方法如何给列表追加元素,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  7. Pytest+Request+Allure+Jenkins实现接口自动化

    这篇文章介绍了Pytest+Request+Allure+Jenkins实现接口自动化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  8. 利用python实现简单的情感分析实例教程

    商品评论挖掘、电影推荐、股市预测……情感分析大有用武之地,下面这篇文章主要给大家介绍了关于利用python实现简单的情感分析的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. Pycharm中运行程序在Python console中执行,不是直接Run问题

    这篇文章主要介绍了Pycharm中运行程序在Python console中执行,不是直接Run问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

返回
顶部