python - 为什么我终止代码后文本文件不保存写入的内容?
问题描述
因此,我正在制作密码生成器并尝试将其保存到文本文件中。这是它的外观:
import string
from random import *
characters = string.ascii_letters + string.punctuation + string.digits
password = ("".join(choice(characters) for x in range(randint(8, 16))))
print(password)
choice = input("What is your password for?")
F = open("Passwords.py", "w")
F.write("\n" + choice + ": " + password)
F.close()
但由于某种原因,文本文件只保存最新的密码。为了让这点真正适用,我需要文本文件来保存多个密码。有什么办法可以防止这种情况发生吗?
解决方案
当您执行open("Passwords.py", "w")
W 写入时,您可以使用open("Passwords.py", "a")
将数据附加到文件中来覆盖现有文件数据,这将为您添加新密码而不会覆盖现有密码。
您可以执行以下操作
with open("Passwords.py", "a") as f:
f.write("\n" + choice + ": " + password)
在文件上使用 with 时,它会在执行 write() 后自动关闭它
推荐阅读
- google-apps-script - 将行从 A 列中具有历史日期的多个选项卡移动到单个选项卡
- c# - 用 { } vs => 定义属性有什么区别?
- javascript - 用于检查多级数组中特定数字的 JavaScript 代码
- c++ - 模板类的 C++11 std::vector 在构造函数中带有参数
- php - $checkLike = $user->places->contains($placeId); 即使根据我的计算它应该返回true,但仍然返回false
- sql - 如何根据查询结果从存储过程中将列添加到选择中?
- python - 自定义评分指标 sklearn 逻辑回归
- javascript - 我的 AngularJs 应用程序不会转发到另一个站点
- python - 如何在 Python 中修复井字游戏,填充整列而不是一个正方形
- vb.net - 解码邮件编码字=?utf-8?B?xxxx?=,=?utf-8?Q?xxxx?=