【问题标题】:TypeError: coercing to Unicode: need string or buffer, tuple foundTypeError:强制转换为 Unicode:需要字符串或缓冲区,找到元组
【发布时间】:2014-09-29 01:46:59
【问题描述】:

我正在尝试让我的应用程序运行带有 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中对应的part文件:

    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)

谁能帮帮我?我不知道在这种情况下该怎么办。我从来没有经历过这种情况。谢谢。

【问题讨论】:

  • 你能检查一下 self.path 是否真的是一个字符串。
  • self.path 很可能是一个元组。
  • 不要命名包含空格的 Python 文件。使用它们会非常痛苦;你不能导入它们(或者至少不能没有广泛的、丑陋的解决方法),你必须在命令行中引用它们或用反斜杠转义空格。
  • 是的。 self.path 将采用档案的路径。
  • 好的,现在告诉我们self.path在此处包含的确切内容

标签: python unicode utf-8 range configobj


【解决方案1】:

您的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)

【讨论】:

  • 谢谢你,Antti Haapala,但现在我收到了这个错误:File "data/epm_core.py", line 116, in generateinp = os.listdir(folder)TypeError: coercing to Unicode: need string or buffer, ConfigObj found
【解决方案2】:

好的,这个问题我解决了很久,简单修改。只是我在所有可以具有 unicode 字符的部分中使用 u"" 字符串。使用 encode.utf8().decode.utf8() 比较困难,所以在正确的时刻使用 u"" 字符串。

【讨论】:

    猜你喜欢
    • 2015-05-03
    • 2021-03-28
    • 2015-02-01
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多