脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - PyQt转换路径中的斜杠(斜杠(/)与反斜杠(\)转换)

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

2022-07-19 19:33Jayce~ Python

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

1.问题背景        

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

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

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

Python提取Word中的图片

在使用doc2docx进行doc文件转为docx文件时,在获取用户需要处理的路径后调用doc2docx,在高版本pywin32中,已经不支持传入的路径由斜杠组成了,会引发pywintypes.com_error报错(老版本221可以支持斜杠组成的文件路径):

Traceback (most recent call last):
  File "C:UsersJayceAnaconda3envs f1.7libsite-packagesIPythoncoreinteractiveshell.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 FilesJetBrainsPyCharm 2020.1pluginspythonhelperspydev\_pydev_bundlepydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "C:Program FilesJetBrainsPyCharm 2020.1pluginspythonhelperspydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+" ", 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', '很抱歉,找不到您的文件。该项目是否已移动、重命名或删除? (E://Win10/Datasets/Test%20sample/提取图...)', 'wdmain11.chm', 24654, -2146823114), None)

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

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))

可以看到成功转化:

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

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

使用QtCore.QDir.fromNativeSeparators方法: 

# 反斜杠()转正斜杠(/)
doc_path = r"E:Win10DatasetsTest sample提取图片	mp.doc"
print("原始路径:{}".format(doc_path))
path = QtCore.QDir.fromNativeSeparators(doc_path)
print("转换后路径:{}".format(path))

可以看到成功转化:

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

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

原文地址:https://geo-ai.blog.csdn.net/article/details/124156128

延伸 · 阅读

精彩推荐
  • Python关于不懂Chromedriver如何配置环境变量问题解决方法

    关于不懂Chromedriver如何配置环境变量问题解决方法

    这篇文章主要介绍了关于不懂Chromedriver如何配置环境变量问题解决方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看...

    冬月十二12542021-07-10
  • Pythonpython防止栈溢出的实例讲解

    python防止栈溢出的实例讲解

    在本篇文章里小编给大家整理了一篇关于python防止栈溢出的实例讲解内容,有兴趣的朋友们可以学习参考下。...

    小妮浅浅5222021-11-05
  • Pythonpython fabric实现远程部署

    python fabric实现远程部署

    这篇文章主要为大家详细介绍了 python fabric实现远程部署,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    apple90055602020-09-16
  • Python10张动图学会python循环与递归问题

    10张动图学会python循环与递归问题

    今天为大家整理了十张动图GIFS,有助于认识循环、递归、二分检索等概念的具体运行情况。代码实例以Python语言编写,非常不错,感兴趣的朋友跟随小编一...

    曾亲桂林6932021-09-03
  • Pythonpython 19个值得学习的编程技巧

    python 19个值得学习的编程技巧

    这篇文章主要介绍了python 19个值得学习的编程技巧,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下 ...

    用户16344494372020-08-15
  • Python将python文件打包成EXE应用程序的方法

    将python文件打包成EXE应用程序的方法

    相信大家都想把自己完成的项目打包成EXE应用文件,然后就可以放在桌面随时都能运行了,下面来分享利用pytinstaller这个第三方库来打包程序,感兴趣的朋友...

    IT白鸽4262021-06-28
  • PythonPython 绘图库 Matplotlib 入门教程

    Python 绘图库 Matplotlib 入门教程

    Matplotlib是一个Python语言的2D绘图库,它支持各种平台,并且功能强大,能够轻易绘制出各种专业的图像。本文是对Python 绘图库 Matplotlib 入门教程,感兴趣的...

    只为那传说中美丽的草原9882021-02-02
  • PythonDjango项目在pycharm新建的步骤方法

    Django项目在pycharm新建的步骤方法

    在本篇文章里小编给大家整理的是一篇关于Django项目在pycharm新建的步骤方法,有兴趣的朋友们可以学习参考下。...

    小妮浅浅8892021-09-13