python - 压缩单个文件

标签 python zip

我正在尝试用 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

最佳答案

如果要压缩的文件 (filename) 位于名为 pathname 的不同目录中,则应使用 arcname 参数。否则,它将重新创建文件夹的完整文件夹层次结构。

from zipfile import ZipFile
import os

with ZipFile(zip_file, 'w') as zipf:
    zipf.write(os.path.join(pathname,filename), arcname=filename)

关于python - 压缩单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214376/

相关文章:

python - 在列表组件列表中明智地添加或减去元素

python - 如何使用 python 的 ziplib 文件压缩巨大的纯文件 (+20GB)

python - 在循环命令内创建按钮失败

Python 堆叠到非堆叠格式

python - 字典键上的正则表达式匹配

Perl:IO::Uncompress::Unzip:获取 zip 文件的最后修改日期

python - re.Pattern.findall 工作错误

python - 如何在 Django 中设置不同的时区

c++ - libzip : what is the first argument? 中的 zip_source_zip

.net - 是否有使用VB.NET解压缩.Z文件的库?