PyQT |如果路径有空格,QDesktopServices.openUrl不起作用

时间:2017-03-12 13:12:11

标签: python pyqt pyqt5 qurl qdesktopservices

我正在尝试使用QDesktopServices让系统打开指定的文件或文件夹。

下面的代码非常适用于没有空格的路径,但如果不这样做则无法执行

def openFile(self):

    print self.oVidPath
    print "\n"
    url = QUrl(self.oVidPath)
    QDesktopServices.openUrl(url)
    self.Dialog.close()

和带空格的路径的输出是

/home/kerneldev/Documents/Why alcohol doesn't come with nutrition facts.mp4


gvfs-open: /home/kerneldev/Documents/Why%20alcohol%20doesn't%20come%20with%20nutrition%20facts.mp4: error opening location: Error when getting information for file '/home/kerneldev/Documents/Why%20alcohol%20doesn't%20come%20with%20nutrition%20facts.mp4': No such file or directory

我已经确认指定的路径存在。

请帮助

1 个答案:

答案 0 :(得分:4)

您需要使用file://网址,否则QUrl会将路径视为网络网址,并对其进行编码以便在该上下文中使用。所以试试这个:

url = QUrl.fromLocalFile(self.oVidPath)