2017-08-18 10 views
0

私は美しいスープを使ってURLからファイルをスクラップし、Pythonを使ってこれらのファイルを単一のzipに保存したいと考えています。以下は、1つのURLのコードスニペットです。pythonを使用してURLから複数のファイルを1つのzipに保存する方法は?

fz = zipfile.ZipFile('C:\\Users\\ADMIN\\data\\data.zip', 'w') 


response = urllib2.urlopen(url/file_name.txt) 
file = open('C:\\Users\\ADMIN\\data\\filename.txt','w') 
file.write(response.read()) 
file.close() 

fz.write('C:\\Users\\ADMIN\\data\\filename.txt',compress_type=zipfile.ZIP_DEFLATED) fz.close() 

このスニペットは私にとっては機能しません。エラー以下になる:

WindowsError: [Error 2] The system cannot find the file specified: 'C:\Users\ADMIN\data\filename.txt'

ファイルがこの場所にあります。

+0

ここで働いているようです。 – Goyo

答えて

0

用途:あなたが必要として

fz.writestr("file_name", url.read()) 

何度でも。私。ファイルごとに1つのwritestr()。新しいZIPの開き時に、ジップのモード(収縮)を選択します。

したがって、ファイルをディスクに保存してからパックする必要はありません。 htmlの名前と内容を取得し、writestr()にフィードしてください。 ZIPはパスセパレータとして '/'を取得します。したがって、サブディレクトリには "/some_dir/some_subdir/index.html"、ルートにはファイルを入れるには "/index.html"のようなものを使用します。

関連する問題