Условия задачи:

 

Шифрование и дешифрование файлов. Напишите программу, которая применяет сло­варь для присвоения "кодов" каждой букве алфавита. Например:
codes = {'А': '%',  'а', : '9',  'Б' : '@', 'б' :  '#' ... } 

Здесь букве А присвоен символ %, букве а - число 9, букве Б - символ @ и т. д. Про­грамма должна открыть заданный текстовый файл, прочитать его содержимое и приме­нить словарь для записи зашифрованной версии содержимого файла во второй файл.
Каждый символ во втором файле должен содержать код для соответствующего символа из первого файла. 

Напишите вторую программу, которая открывает зашифрованный файл и показывает его дешифрованное содержимое на экране.

 

Решение задачи:

def main1():

    def get_code(value):
        dict_code= {'а': '@', 'б': '!' , 'в': '#' , 'г': '$', 'д': '%' , 'е': '^', 'ё': '&', 'ж': '*', 'з':'{', 'и': '(',
                 'й': ')', 'к': '}', 'л': 'q', 'м': 'c', 'н': 'w', 'о': 'e', 'п': 'r', 'р': 't', 'с': 'y', 'т': 'u',
                 'у': 'a', 'ф': 's', 'х': 'f', 'ц': 'g', 'ч': 'h', 'ш': 'j', 'щ': 'z', 'ъ': 'x', 'ы': 'v', 'ь': 'b',
                 'э': '/', 'ю': '.', 'я':'<'}
        list_msg = []
        for i in value:
            new_msg = ''
            for c in i:
                if c in dict_code:
                    new_msg += dict_code[c]
                else:
                    new_msg += c
            #print(new_msg, type(new_msg))
            list_msg.append(new_msg)
        return list_msg
    with open('original.txt', 'r') as in_file:
        file_msg = ''
        for i in in_file:
            file_msg += i
            list_msg = file_msg.split('\n')
        print('файл прочитан',)
        new_msg_l = get_code(list_msg)

        with open('code.txt', 'w') as out_file:
            for i in new_msg_l:
                out_file.write(i + '\n')
            print('файл записан')
main1()

def main2():
    def get_decode(value):
            dict_code = {'а': '@', 'б': '!', 'в': '#', 'г': '$', 'д': '%', 'е': '^', 'ё': '&', 'ж': '*', 'з': '{', 'и': '(',
                         'й': ')', 'к': '}', 'л': 'q', 'м': 'c', 'н': 'w', 'о': 'e', 'п': 'r', 'р': 't', 'с': 'y', 'т': 'u',
                         'у': 'a', 'ф': 's', 'х': 'f', 'ц': 'g', 'ч': 'h', 'ш': 'j', 'щ': 'z', 'ъ': 'x', 'ы': 'v', 'ь': 'b',
                         'э': '/', 'ю': '.', 'я': '<'}
            dict_decode = {v:k for k,v in dict_code.items()}
            msg = ''
            for i in value:
                if i in dict_decode:
                    msg += dict_decode[i]
                else:
                    msg += i
            return msg
    with open('code.txt', 'r') as in_file:
        file_msg = ''
        for i in in_file:
            file_msg += i

        print('файл прочитан, текст декодирован')
        print(get_decode(file_msg))

main2()