# sha1sum_stdin.py from typing import List import hashlib import pathlib import sys def process_file(filename: str) -> bytes: return pathlib.Path(filename).read_bytes() def process_stdin() -> bytes: return bytes("".join(sys.stdin), "utf-8") def sha1sum(data: bytes) -> str: sha1_hash = hashlib.sha1() sha1_hash.update(data) return sha1_hash.hexdigest() def output_sha1sum(data: bytes, filename: str = "-") -> None: print(f"{sha1sum(data)} {filename}") def main(args): if not args: output_sha1sum(process_stdin()) for arg in args: if arg == "-": output_sha1sum(process_stdin(), "-") continue try: output_sha1sum(process_file(arg), arg) except FileNotFoundError as err: print(f"{sys.argv[0]}: {arg}: {err.strerror}", file=sys.stderr) if __name__ == "__main__": main(sys.argv[1:]) # ejecutar # python3 sha1sum_stdin.py # Beautiful is better than ugly. # Ctrl-D # ejecutar # python3 sha1sum_stdin.py bad_file.txt