2016-11-30 10 views
1

QListWidgetに記載されている画像をダウンロードしようとしていますが、私にはurllibへのリンクが渡されています。TypeError:例このエラー。私はここを見てみましたが、私のコードはここでは解決策を見つけることができませんでした。おかげPythonエラーTypeError:インスタンスではなく、文字列またはバッファでなければならない

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() 
+0

書式を修正してください。インデントがオフなので、このコードは実際には実行されません。 'imageFile'を閉じる必要はありません。 'with 'を使用することの全ポイントはあなたがその種のリソースを管理する必要がないからです。スタック全体のトレースを含める。 – skrrgwasme

答えて

1

それはスタックトレースを見ることなく確かに言うのは難しいですが、私はこの行を疑う:

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

はなくなるはずです。

ちなみに
imageFile.write(urllib.urlopen(filename).read()) 

、あなたはしないでくださいwithステートメントがファイルを自動的に閉じますので、imageFile.close()行が必要です。

+0

はい、あなたは正しいです。ありがとう、それは今働いています:) – laslavinco

+0

オハイオ州大丈夫です..私はそれを削除します:) – laslavinco

+0

そして、お元気ですか?ダウンロードする前にファイルサイズを知る方法はありますか? – laslavinco

関連する問題