每次如何将变量保存到文本文件中的新行中?

时间:2019-07-01 23:32:01

标签: python pickle

我试图让我的程序要求输入(例如名称),并在每次运行到文本文件时将此名称和pickle一起保存到新行。 例如:如果我想第一次将名称“ John”保存在第一行“ John”中,那么第二次我运行程序时,它将名称“ Jeff”保存在第二行中,因此上。

我已经导入并设置了请求输入以及pickle将其转储到文件的部分。

import pickle

print("Hello!")
name = input("What is your name? : ")
print (name)
file1 = open("store.txt", "wb")
pickle.dump(name, file1)
file1.close()

它确实保存了输入,但是每次我重新运行该程序并输入不同的字符串时,它都会覆盖前一个。

2 个答案:

答案 0 :(得分:2)

打开文件以附加模式执行操作时,请使用"ab+"而不是"wb"

答案 1 :(得分:0)

当pickle用open(filename, 'wb')打开文件时,它会自动擦除文件内容,类似于使用'w'参数打开文本文件会立即擦除内容。

您可以先打开文件以进行读取,然后保存文件的内容,对其进行修改或附加变量,然后通过写入重新打开文件并保存。您也可以使用'ab'参数打开要附加的文件。这两种方法都可以使用,但是每次打开时都会擦除文件。