python - 如何将 .tar 转换为 .tgz

标签 python subprocess gzip tar

我正在尝试用 python 压缩一些文件。我正在使用子进程,问题是我不知道如何压缩所有文件。这是我所做的:

comand = czf
saveFolder = /home/albert/a.tgz
temporal = /home/albert/test1

subprocess.call(["tar",comand,saveFolder,temporal])

如何添加更多文件?如果我尝试这样做,它会向我发送错误:

subprocess.call(["tar",comand,saveFolder,temporal1,temporal2])

subprocess.call(["tar",comand,saveFolder,temporal + temporal2])

我也尝试过使用:

subprocess.call(["tar",comand,saveFolder,temporal])

然后将所有文件添加到.tar文件中

subprocess.call(["tar","rvf",saveFolder,temporal])

最后一个想法的问题是,我只能对 .tar 文件执行此操作,但对 .gzip 或其他类型的文件则不起作用。

我能做什么? 谢谢。

最佳答案

如果你只使用 Python 来完成肮脏的工作怎么办?

从整个目录创建 tar 包(未压缩)

>>> import tarfile
>>> tar = tarfile.open('package.tar', 'w')
>>> tar.add('full/path/of/dir/')
>>> tar.close()

更新 tar 包。

观察到:无法更新压缩包。必须解压、更新、重新压缩

>>> tar = tarfile.open('package.tar', 'w')
>>> tar.add('new_file.txt')
>>> tar.add('new_other_file.txt')
>>> tar.close()

创建 tar 压缩包

>>> tar = tarfile.open('package.tar.gz', 'w:gz')
>>> tar.add('server.db')
>>> tar.add('readme.txt')
>>> tar.close()

关于python - 如何将 .tar 转换为 .tgz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29375004/

相关文章:

Python 3.3.2 tkinter ttk TreeView 每列排序仅按最后一列排序?

python - 重定向 stdout 时在 python 上调用子进程时出错

nginx - nginx 可以在不使用分块编码的情况下发送动态压缩的内容吗?

python - Python解压缩中的默认值

python - 如何按字母顺序完全排序 JSON 树

python - 检查子进程是否仍在运行,同时逐行读取其输出

php - 从文件和文件夹的结构化数组创建 ZIP/RAR/GZ 存档

java - OS X gzip 可以配置为匹配 Java GZIPOutputStream 吗?

python - 无效参数错误 : input_1_1:0 is both fed and fetched

python - 如何在 Python 中的 subprocess.Popen 中运行 awk -F\' ' {print $2}'?