0

2 つの Web サイトから複数の画像ファイルをダウンロードしようとしていますが、必要な時間を短縮することを期待して、マルチプロセッシング モジュールを使用しています (同期的には約 5 分です)。これは、別のプロセスで実行されるコードです。

def _get_image(self):
        if not os.path.isdir(self.file_path + self.folder):
            os.makedirs(self.file_path + self.folder)

        rand = Random()
        rand_num = rand.randint(0, sys.maxint)
        self.url += str(rand_num)
        opener = urllib.FancyURLopener()
        opener.retrieve(self.url, self.file_path + self.folder + '/' + str(rand_num) + '.jpg')

上記のコードは個別のプロセスで実行され、正常に動作しますが、各ファイルをダウンロード直後に保存するのではなく、プロセス実行の最後に保存したいと思います。ダウンロード後、ファイルを内部リストまたは dict に保存したいのですが...残念ながら、FancyURLopener はファイルをメモリに保存することを許可しておらず、ダウンロード後すぐにディスクに書き込むことを要求します。FancyURLopener のようなツールがありますが、ディスクへの書き込みはありませんか?

4

1 に答える 1

1

URLopener.open()ファイルのようなものを返します。read()データをバイト文字列として取得し、必要な場所に保存できます。

URLopenerそもそもなんでアタリが必要なの?シンプルにurllib2.urlopen()いかがでしょうか?

于 2013-02-13T20:01:27.777 に答える