Как определить функцию с именем «encode_text_file (input_file, output_file, n, encoding = 'utf-8')», которая кодирует файл сдвигом n букв? - PullRequest
0 голосов
/ 21 января 2019

Проблема основана на шифровании Цезаря. Точная формулировка проблемы выглядит следующим образом:

"Реализовать функцию encode_text_file (input_file, output_file, shiftn, encoding = 'utf-8'), которая кодирует файл с помощью сдвига n букв."

Руководство

  • функция должна игнорировать символы, которые не являются английскими, но сохранять их как есть
  • Заглавная буква сохраняется в кодировке. Например, шифрование файла .txt с буквой «a» и «shiftn», равным «1», возвращает «b». И наоборот, файл .txt с буквой «A» и «shiftn», равным «1», возвращает «B».
  • Пользователь должен ввести файл .txt в параметр «input_file»
  • Пользователь должен ввести файл .txt в параметр «output_file»
  • пользователь должен ввести целое число для параметра "shiftn"

В конечном счете

  • Как открыть файл .txt в моей функции?
  • Как прочитать содержимое этого файла .txt?
  • Как мне перезаписать символы в этом файле, добавив целое число, переданное параметру "shiftn", к значению Unicode символа?
  • и как мне вернуть "зашифрованный" вывод?

Я использую приложение Spyder (Python 3.6) для проверки своего кода.

Я только начинаю с Python, и это все, что я мог придумать до сих пор. Моя идея состоит в том, чтобы преобразовать символы в файле в Unicode, а затем добавить к номеру Unicode, чтобы «кодировать» символ.

def encode_text_file(input_file_plain, output_file_encoded, shiftn, encoding = 'utf8'):
inputFile = open('input_file_plain', mode = 'r+', encoding = 'utf-8')
OutputFile = open('output_file_encoded', mode = 'r+', encoding = 'utf8')
    for i in input_file_plain:
...