# -*- coding: utf-8 -*- """ """ import tarfile from base64 import b64encode from hashlib import sha256 from os import unlink from pathlib import Path from subprocess import Popen, PIPE from time import sleep dir0 = Path("/tmp/a") dir0.mkdir(parents=True, exist_ok=True) fil0 = dir0 / "eph0" fil0.write_text("Text 0", encoding="UTF-8") fil1 = dir0 / "eph1" fil1.write_text("Text 1", encoding="UTF-8") fil2 = dir0 / "eph2" fil2.write_text("Text 2", encoding="UTF-8") # Python for comp in ["gz", "bz2", "xz"]: print(f" # {comp}") tgz = f"/tmp/py.{comp}" with tarfile.open(tgz, f"w:{comp}") as tar_obj: tar_obj.add("/tmp/a", arcname="a") print(Popen(f"sha256sum {tgz}", shell=True, stdout=PIPE).stdout.read()) with open(tgz, "rb") as tar_obj: base64 = str(b64encode(tar_obj.read()), "UTF-8").encode("UTF-8") print(sha256(base64).hexdigest()) sleep(5) unlink(tgz) tgz = f"/tmp/py.{comp}" with tarfile.open(tgz, f"w:{comp}") as tar_obj: tar_obj.add("/tmp/a", arcname="a") print(Popen(f"sha256sum {tgz}", shell=True, stdout=PIPE).stdout.read()) with open(tgz, "rb") as tar_obj: base64 = str(b64encode(tar_obj.read()), "UTF-8").encode("UTF-8") print(sha256(base64).hexdigest()) print("") # CMD - tar tgz = "/tmp/tar_a0.tgz" _ = Popen(f"tar czf {tgz} /tmp/a", shell=True, stderr=PIPE, stdout=PIPE) out = Popen(f"sha256sum {tgz}", shell=True, stdout=PIPE).stdout.read() print(out) sleep(5) tgz = "/tmp/tar_a1.tgz" _ = Popen(f"tar czf {tgz} /tmp/a", shell=True, stderr=PIPE, stdout=PIPE) out = Popen(f"sha256sum {tgz}", shell=True, stdout=PIPE).stdout.read() print(out) # CMD - gzip tgz = "/tmp/gzp_a0.tgz" _ = Popen(f"tar -c /tmp/a | gzip -n >{tgz}", shell=True, stderr=PIPE, stdout=PIPE) out = Popen(f"sha256sum {tgz}", shell=True, stdout=PIPE).stdout.read() print(out) sleep(5) tgz = "/tmp/gzp_a1.tgz" _ = Popen(f"tar -c /tmp/a | gzip -n >{tgz}", shell=True, stderr=PIPE, stdout=PIPE) out = Popen(f"sha256sum {tgz}", shell=True, stdout=PIPE).stdout.read() print(out)