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 в правильные моменты.