Python 当我加密了多行时,文件写入仅写入一行

Python 当我加密了多行时,文件写入仅写入一行,python,file,Python,File,我正在尝试加密一个文件,并将第一个文件中的加密文本保存到另一个文件中。我有它所有的工作,除了它只是写入一行到新的文件,而不是整个文件 file1 = open("passwords-plainText", "r") for line in file1: file2 = open("encryptedfile.txt", "w") file2.write(encryptVignere(keyGen(),

我正在尝试加密一个文件,并将第一个文件中的加密文本保存到另一个文件中。我有它所有的工作,除了它只是写入一行到新的文件,而不是整个文件

file1 = open("passwords-plainText", "r")
for line in file1:
    file2 = open("encryptedfile.txt", "w")
    file2.write(encryptVignere(keyGen(), line))
我使用的示例文件如下所示

example
secondexample
new line
this is another new line
我保存到的新文件中的输出只写入第一行,而不写入其余的行 (即)

文件应该是这样的

tyawakud
tqiibwaeeonozp
pttzucfqs
foxnzgjwtmbhnpwhjnapmsfg

只能打开
file2
一次:

file1 = open("passwords-plainText", "r")
file2 = open("encryptedfile.txt", "w")

for line in file1:
    file2.write(encryptVignere(keyGen(), line))

否则,您只需继续覆盖它。

您应该只打开
文件2
一次:

file1 = open("passwords-plainText", "r")
file2 = open("encryptedfile.txt", "w")

for line in file1:
    file2.write(encryptVignere(keyGen(), line))

否则,您将继续覆盖它。

每次重新打开文件时,您都是从头开始重写。只需在循环开始之前打开它一次。或者在
a
模式下打开它以附加到结尾,而不是
w
模式。好吧,我觉得很愚蠢,我以前应该看到过这一点。谢谢各位,鉴于上述情况,保存的不是第一个明文行的加密副本,而是最后一个。每次重新打开文件时,都是从头开始重写。只需在循环开始之前打开一次。或者在
a
模式下打开它以附加到结尾,而不是
w
模式。好吧,我觉得自己很愚蠢,我以前就应该看到这个。谢谢你们两个,鉴于上述情况,保存的不是第一条明文线的加密副本,而是最后一条。