Как исправить эту ошибку: [WinError 267] Неверное имя каталога: - PullRequest
0 голосов
/ 02 июня 2018

У меня есть сценарий python, который создает приложение с графическим интерфейсом, которое отображает список существующих файлов после того, как пользователь выбрал путь.

Система отображается в QlistWidget fileName и его parentFolder.

Я хочу получить полный путь к выбранному файлу из списка

пример: C: \ Users \ test \ Desktop \ test_arabic.docx

Система отображает эту ошибку:

[WinError 267] Неверное имя каталога: 'C: \ Users \ test \ Desktop \ test_arabic.docx'

Как исправить эту ошибку.

Примечание. Я использую переменную self.fullpath в качестве глобальной переменной.

        print("chdir ==> {}".format(os.chdir(PureWindowsPath(self.fullPath))))

Код, приведенный выше, является причиной ошибки.где я пытаюсь изменить текущий путь к каталогу на выбранный путь к файлу.

def eventFilter(self, obj, event):
            try:


                if self.listWidgetPDFlist.viewport() == obj and event.type() == QtCore.QEvent.MouseMove:
                    #*********


                    it = self.listWidgetPDFlist.itemAt(event.pos())
                    print("it ==>{}".format(it.text()))
                    ##*********
                    Item=str(it.text())
                    print("item ==> {}".format(Item))
                    print("full path ==>{}".format(PureWindowsPath(self.fullPath)))


                    print("chdir ==> {}".format(os.chdir(PureWindowsPath(self.fullPath))))
                    parentFile =Path().resolve().parent

                    print("parent file ==>{}".format(parentFile))

                    selectedFile = os.path.join(str(parentFile,Item))
                    print("selectedFile ==>{}".format(selectedFile))

                    if self.hoverItem != it:
                        message = selectedFile

                        QtWidgets.QToolTip.showText(QtGui.QCursor.pos(), 
                            message, 
                            self.listWidgetPDFlist.viewport(), 
                            self.listWidgetPDFlist.visualItemRect(it))
                        self.hoverItem = selectedFile

            except Exception as e:
                print(e)

            return QtWidgets.QMainWindow.eventFilter(self, obj, event)

1 Ответ

0 голосов
/ 02 июня 2018

Параметр, который вы передаете функции os.chdir(), недопустим, потому что это не каталог, а путь к файлу.Вам нужно исключить имя файла из него и затем передать его os.chdir():

os.chdir(PureWindowsPath(os.path.dirname(self.fullPath)))
...