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