#!/usr/bin/env python3 """Restore bytes from an ASCII 0/1 binary-text representation.""" from __future__ import annotations import argparse from pathlib import Path def main() -> None: parser = argparse.ArgumentParser() parser.add_argument("input", type=Path) parser.add_argument("output", type=Path) args = parser.parse_args() text = args.input.read_text(encoding="ascii") bits = "".join(ch for ch in text if ch in "01") if len(bits) % 8 != 0: raise SystemExit(f"Invalid binary text length: {len(bits)} bits is not divisible by 8") data = bytes(int(bits[i : i + 8], 2) for i in range(0, len(bits), 8)) args.output.write_bytes(data) if __name__ == "__main__": main()