TypeError: приведение к Unicode: нужна строка или буфер, кортеж найден

Я пытаюсь заставить мое приложение запускать файлы с символами Unicode, но для этого вы должны декодировать перед ними. Для этого я использую ConfigObj.py. Но когда я запускаю приложение, получаю следующую ошибку:

Traceback (most recent call last):
   File "GCW_Player.py", line 757, in <module>
     epMEDIA ()
   File "GCW_Player.py", line 89, in __ init__
     self.keyhandler (event.key)
   File "GCW_Player.py", line 133, in keyhandler
     if key == K_RIGHT: self.k_goto ()
   File "GCW_Player.py", line 211, in k_goto
     self.go_to ()
   File "GCW_Player.py", line 649, in go_to
     self.list.generate (self.sec_ftypes)
   File "/data/epm_core.py", line 114, in generate
     inp = os.listdir (self.path)
TypeError: coercing to Unicode: need string or buffer, tuple found

Ниже приведем соответствующий файл детали в приложении:

    def generate(self, filetypes):
        self.data = []
        inp = os.listdir(self.path)
        inp.sort()
        for line in inp:
            file = File(os.path.join(self.path, line), filetypes)
            if file.type != None:
                self.data.append(file)

Может кто-нибудь мне помочь? Я не знаю, что делать в этом случае. Я никогда не сталкивался с такой ситуацией. Спасибо.

2 ответа

Решение

Ваш self.path содержит несколько путей, может быть, вам нужно:

def generate(self, filetypes):
    self.data = []

    for folder in self.path:
        inp = os.listdir(folder)
        inp.sort()
        for line in inp:
            file = File(os.path.join(folder, line), filetypes)
            if file.type != None:
                self.data.append(file)

Хорошо, просто я давно решил эту проблему с помощью простой модификации. Просто я использую строку "" "во всех частях, которые могут иметь символ Unicode. Использование encode.utf8(). Decode.utf8() сложнее, поэтому просто используйте строки u в правильные моменты.

Другие вопросы по тегам