#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys def translate(text: str, key: str) -> str: """ Takes input of text as a string, and key as a string. Translates the message. Returns the translated message as a string. """ new_message = [] for i in range(256): index = i * 8 newChar = chr(ord(text[i]) ^ int(key[index : index + 8], 2)) new_message.append(newChar) return "".join(new_message) def main() -> None: key_num = int(sys.argv[2]) with open(sys.argv[1], "r") as code_book: key = code_book.readlines()[key_num] with open(sys.argv[3], "r", newline="") as input_text: text = input_text.read() with open(sys.argv[4], "w", newline="") as outputFile: outputFile.write(translate(text, key)) if __name__ == "__main__": main()