我正在尝试制作一个接受输入并将其保存到文件的程序。之后,我希望使用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.
我的问题是,运行该程序后,新的加密文档中没有输出。另外,在此程序中是否有很好的方法将大写字母包括在内?
提前感谢所有帮助!
答案 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")