[英]How to add empty string to the end of tgz file in Python
我正在运行以下命令,将空字符串添加到tgz文件中,以便可以有新的sha256 sum;
cat orginal.tgz <(echo ''| gzip)> modified.tgz
$sha256sum *.tgz
3b49d79af670d0aea9d1e0ead2f512ad107d54b657df6ecb60a1b13ef796cb66 modified.tgz
574ddb9b269bc2e69fffff81c2f29d932d3fd95e4c9ca1ed259517ac83b1421a orginal.tgz
我可以解压缩Modifyed.tgz文件,没有任何问题; 现在,我编写了这个简单的python程序来执行相同的操作。
with open("new.tgz", "w") as outfile:
with open("orginal.tgz", "r") as infile:
buff = infile.read()
outfile.write(buff)
outfile.write(' ')
我可以为new.tgz文件看到不同的sha256sum,但是无法解压缩并出现以下错误
$ sha256sum *.tgz
3b49d79af670d0aea9d1e0ead2f512ad107d54b657df6ecb60a1b13ef796cb66 modified.tgz
574ddb9b269bc2e69fffff81c2f29d932d3fd95e4c9ca1ed259517ac83b1421a orginal.tgz
0458bb8342faf0482739069a1a70aef89d32fb9336f2f7926dfe6d54a0dc6cc1 new.tgz
$ tar -xvf new.tgz
google.txt
gzip: stdin: unexpected end of file
tar: Child returned status 1
tar: Error is not recoverable: exiting now
在linux命令中,您正在向tgz添加一个带有空字符串的文件。 您在python中所做的就是修改tgz文件本身。
您不能直接更新tgz。 您需要向其中添加文件。 使用像tar这样的库,并创建一个带有空字符串的文件并将其添加到其中:
archive = tarfile.open("original.tgz", "w|gz")
archive.add(empty_file_path, arcname=empty_file_path)
archive.close()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.