我正在尝试在Python中压缩单个文件。出于某些原因,我很难掌握语法。我想要做的是保留原始文件并创建一个原始文件的新压缩文件(就像Mac或Windows如果你归档一个文件那样所做的)。
到目前为止,这是我所拥有的:
import zipfile
myfilepath = '/tmp/%s' % self.file_name
myzippath = myfilepath.replace('.xml', '.zip')
zipfile.ZipFile(myzippath, 'w').write(open(myfilepath).read()) # does not zip the file properly
zipfile.write()
的第一个参数应该是现有文件的名称,但你却将文件内容作为文件名传递。你需要传递源文件的名称(同时加上arcname=
),或者使用writestr()
方法。 - dhkecompress_type=zipfile.ZIP_DEFLATED
,因为zipfile默认压缩是ZIP_STORED
,这不会减小压缩文件的大小。 - Vimanyu