Не получается вывод в файл - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь создать программу, которая принимает данные и сохраняет их в файл.После этого я хотел бы, чтобы информация, содержащаяся в документе, была зашифрована с помощью цезаря с 6 сменами.Затем я хотел бы иметь программу дешифрования, в которой я расшифровываю файл обратно в исходный код (выполняется с использованием примерно того же кода, но вместо этого расшифровываю?)

Это мой код:

encrypt = str.maketrans('abcdefghijklmnopqrstuvwxyz0123456789', 'ghijklmnopqrstuvwxyz0123456789abcdef')
decrypt = str.maketrans('ghijklmnopqrstuvwxyz0123456789abcdef', 'abcdefghijklmnopqrstuvwxyz0123456789')

filename = "abc.abd.txt"
with open(filename, "a+") as r:
    with open(filename+'-encrypted.txt', 'w+'):
        for line in r:
            print(line.translate(encrypt), file=r)

Кроме того, я хотел бы удалить файл с информацией открытого текста после того, как он был расшифрован в другой файл, если я не ошибаюсь, это делается так:

open(filename, "w+") # At the end of the document.

Myпроблема в том, что после запуска программы в моем новом зашифрованном документе нет вывода.Кроме того, есть ли хороший способ включить заглавные буквы в эту программу?

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 19 декабря 2018

похоже, что вы ничего не записываете в свой файл "file-encrypted.txt"

, меняете

with open(filename+'-encrypted.txt', 'w+'):

на

with open(filename+'-encrypted.txt', 'w+') as fEncrypted:

, а также

fEncrypted.write(line.translate(encrypt))

вместо

print(line.translate(encrypt), file='r’) 

об удалении первого «имени файла» после процесса, это будет сделано, если вы откроете этот файл как «w», так как перезаписываете его ни с чем.Чтобы полностью удалить файл, вам нужно сделать:

import os
if os.path.exists("filename.txt"):  
    os.remove("filename.txt")
...