首页 > 解决方案 > 为什么我终止代码后文本文件不保存写入的内容?

问题描述

因此,我正在制作密码生成器并尝试将其保存到文本文件中。这是它的外观:

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()

但由于某种原因,文本文件只保存最新的密码。为了让这点真正适用,我需要文本文件来保存多个密码。有什么办法可以防止这种情况发生吗?

标签: python

解决方案


当您执行open("Passwords.py", "w")W 写入时,您可以使用open("Passwords.py", "a")将数据附加到文件中来覆盖现有文件数据,这将为您添加新密码而不会覆盖现有密码。
您可以执行以下操作

with open("Passwords.py", "a") as f:
    f.write("\n" + choice + ": " + password)

在文件上使用 with 时,它会在执行 write() 后自动关闭它


推荐阅读