PyQT | QDesktopServices.openUrl Не работает, если путь содержит пробелы

Я пытаюсь использовать 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 ответ

Решение

Вам нужно использовать file:// URL, в противном случае QUrl будет трактовать путь как сетевой URL и будет кодировать его для использования в этом контексте. Так что попробуйте это вместо:

url = QUrl.fromLocalFile(self.oVidPath)
Другие вопросы по тегам