没有输出到文件

时间:2018-12-18 22:25:29

标签: python python-3.x encryption caesar-cipher

我正在尝试制作一个接受输入并将其保存到文件的程序。之后,我希望使用6班次的凯撒(Caesar)班次对文档中的信息进行加密。然后,我想要一个解密程序,在该程序中,我将文件解密回原始文件(通过使用大约相同的代码完成,但改为解密?)

这是我的代码:

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.

我的问题是,运行该程序后,新的加密文档中没有输出。另外,在此程序中是否有很好的方法将大写字母包括在内?

提前感谢所有帮助!

1 个答案:

答案 0 :(得分:0)

您似乎没有向“ 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")