Открытие текстового файла в Python и чтение содержит как str

Я пытаюсь зашифровать файл с помощью алгоритма RSA в Python, поэтому я сохранил все возможные значения, которые могут быть записаны в обычный текстовый файл. нравится

SYMBOLS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !?.'

теперь у меня есть текстовый файл, который я хочу зашифровать. Он содержит только одну строку; «Я мальчик» (без этих цитат). Но когда я пытаюсь зашифровать файл, он показывает, что: «СИМВОЛЫ не имеют символа», это сообщение, которое будет доставлено программой, если символ не совпадает. вот код, в котором я объявил СИМВОЛЫ и открыл текстовый файл:

 SYMBOLS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !?'

 def main():
 # Runs a test that encrypts a message to a file or decrypts a message
 # from a file.
 filename = 'encrypted_file.txt' # The file to write to/read from.
 mode = 'encrypt' # Set to either 'encrypt' or 'decrypt'.
 if mode == 'encrypt':
     message1 = open('afile.txt', 'r') #open the file which will be encrypted
     message = str((message1.read())
     print(message)

Я думаю, что я ошибаюсь при открытии текстового файла, так как для этого скрипта потребуется только содержимое как str, но я не знаю, как это сделать. С нетерпением жду некоторых серьезных замечаний. Спасибо.

Вы выполняете шифрование в двоичном формате или принудительно переводите шифрование в кодировку символов для своего хранилища?

Thomas Kimber 03.12.2018 16:32

нет, я не использую шифрование в двоичном формате

Sandipan 03.12.2018 16:34

Показанный вами код вообще не использует SYMBOLS.

President James K. Polk 03.12.2018 16:36

Я думаю, что, возможно, вам понадобится учебник о различиях концептуальный между байтами и символами (и строками), а также о том, когда имеет смысл обрабатывать данные как символы или байты. К сожалению, я не могу найти такой учебник.

President James K. Polk 03.12.2018 16:52
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
4
67
1

Ответы 1

Попробуйте следующий код, следующий за кодом, чтобы прочитать содержимое из файла. Сообщение об ошибке кажется неуместным для кода, поскольку вы нигде не используете СИМВОЛЫ.

в message = str (message1.read ()) у вас есть несоответствующие открывающая и закрывающая скобки.

SYMBOLS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890 !?'

def main():
    # Runs a test that encrypts a message to a file or decrypts a message
    # from a file.
    filename = 'encrypted_file.txt' # The file to write to/read from.
    mode = 'encrypt' # Set to either 'encrypt' or 'decrypt'.
    if mode == 'encrypt':
        message1 = open(filename, 'r') #open the file which will be encrypted
        message = str(message1.read())
        print(message)

main()

Другие вопросы по теме