Python error TypeError: must be string or buffer, not instance

Python error TypeError: must be string or buffer, not instance

我正在尝试下载 QListWidget 中列出的一些图像我正在将链接传递给 urllib 但它给我 类型错误:必须是字符串或缓冲区,而不是实例这个错误。我试着在这里查找,但在这里找不到任何解决方案是我的代码。谢谢

    def downloadStuff(self):
    files = self.listWidget.selectedItems()
    for filename in files:
        filename = filename.text()
        filename = str(filename)
        print filename
        xfilename = filename.split('/')[-1]
        with open('D:/'+xfilename,'wb') as imageFile:
            print filename
            imageFile.write(urllib.urlopen(filename)).read()
        imageFile.close()

在没有看到堆栈跟踪的情况下很难确定,但我怀疑这一行:

imageFile.write(urllib.urlopen(filename)).read()

应该改为:

imageFile.write(urllib.urlopen(filename).read())

顺便说一下,您不需要 imageFile.close() 行,因为 with 语句会自动为您关闭文件。