如何使用python从一个zip文件中保存多个文件?

时间:2017-08-18 10:45:00

标签: python python-2.7 beautifulsoup zipfile

我正在使用漂亮的汤从URL中删除文件,然后想要使用Python将这些文件存储在单个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:[错误2]系统找不到指定的文件:   'C:\用户\ ADMIN \数据\ FILENAME.TXT'

但文件存在于此位置。

1 个答案:

答案 0 :(得分:0)

使用:

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

根据您的需要多次。即每个文件一个writestr()。在新ZIP的开头选择zip模式(放气)。

因此,您无需将文件保存到磁盘,然后将其打包。只需获取html的名称和内容,然后将其提供给writestr()。 ZIP获取' /'作为路径分隔符。因此,您可以使用以下内容:" /some_dir/some_subdir/index.html"对于子目录或" /index.html"将文件放入root。