我试图用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或其他类型它不起作用。
我能做什么? 感谢。
答案 0 :(得分:2)
如果你只使用Python来做脏事怎么办?
从整个目录创建tar包(未压缩)
>>> import tarfile
>>> tar = tarfile.open('package.tar', 'w')
>>> tar.add('full/path/of/dir/')
>>> tar.close()
更新tar包。
Obs。:您无法更新压缩包。必须对其进行解压缩,更新,重新压缩
>>> 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()
答案 1 :(得分:1)
tgz
个文件只是gzipped tar档案。和.tar.gz
的快捷方式。
tar cz
tar c
tar r
或tar u
附加到(非压缩)存档(请参阅该文章了解差异)gzip
来压缩存档。