附加列表错误类型错误序列项o:期待字符串,找到列表

时间:2011-09-25 00:04:21

标签: python regex list join append

这是我的代码。基本上我认为它应该像这样工作self.list使一个有序列表self.contents将一个列表转换为一个字符串,所以我可以在一个可滚动窗口中使用self.plbuffer.set_text(self.contents)显示self.list。然后os.walk遍历在topall中定义的目录,而不是我在self.search中找到的模式,然后将它附加到self.list中。

class mplay:
   def search_entry(self, widget):
    self.list = []
    self.contents = "/n".join(self.list)
    self.plbuffer.set_text(self.contents)
    search = self.search.get_text()
    top = '/home/bludiescript/tv-shows'
    for dirpath, dirnames, filenames in os.walk(top):
      for filename in filenames:
        if re.findall(filename, search):
         self.list.append(os.path.join([dirpath, filename]))

这个错误意味着什么,我不能使用os.path.join

附加到self.list
error =   file "./mplay1.py" , line 77 in search_entry 
          self.contents = "/n".join(self.list) line 
          typeerror sequence item o: expecting string, list found 

1 个答案:

答案 0 :(得分:1)

列表必须是字符串列表才能生效:

"/n".join(["123","123","234"]) # works
"/n".join([123, 123, 234]) #error, this is int

如果它是列表列表,您也会收到错误,这可能就是您的错误:

"/n".join([[123, 123, 234],[123, 123, 234]]) # error

投入打印self.list以查看它的外观。

当你说它在其他地方运行正常时,可能是因为列表的内容不同。

另外,请注意,加入空列表[]将返回一个空字符串,因此该行实际上什么都不做。