python - 没有输出到文件
问题描述
我试图制作一个接受输入并将其保存到文件的程序。之后,我希望使用 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.
我的问题是运行程序后,我的新加密文档中没有输出。另外,有没有在这个程序中包含大写字母的好方法?
提前感谢所有帮助!
解决方案
似乎您没有在“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")
推荐阅读
- python - 有没有办法从excel工作表名称中去除空格
- sas - sas按组将最后一个值更改为第一个值
- python - 将文本文件转换为 df
- c# - 在 Unity3D 的 System.Drawing 中找不到位图
- python - 有没有什么方法可以用关键字、日期来提取
- typescript - TypeScript:按类型属性选择数组的元素
- android - 处理从新的 Google 相册应用中选择的文件的正确方法
- android - xml 中的 new Date() 不能与数据绑定一起工作
- python - 使用 psql 10.9 和使用 python3.7 的 sqlalchemy 从隔离事务返回行
- python - 如何根据条件更新火花数据框中的行