TypeError:强制转换为Unicode:需要字符串或缓冲区,找到元组

时间:2013-08-14 17:40:32

标签: python unicode utf-8 range configobj

我正在尝试让我的应用运行带有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

下面,让app中的相应部分文件:

    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 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

好的,很长一段时间我通过简单的修改解决了这个问题。我只是用你&#34;&#34;所有可以具有unicode特征的部分中的字符串。使用encode.utf8()。decode.utf8()比较困难,所以只需使用u&#34;&#34;正确的时刻。