Условия задачи:
Шифрование и дешифрование файлов. Напишите программу, которая применяет словарь для присвоения "кодов" каждой букве алфавита. Например:
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()