python在有列表的文件中添加元素

文件里已存在列表,想在这个列表里再添加元素,不知道怎么实现。
代码如下:

import pickle
mylist2 = []
a = input("请输入:")

with open('mylist.txt', 'wb') as f:
    pickle.dump(mylist2, f)

with open('./data/texT.txt', 'rb') as f:
    mylist2 = pickle.load(f)
    mylist2.append(a)


with open('mylist.txt', 'wb') as f:
    pickle.dump(mylist2, f)

with open('./data/texT.txt', 'rb') as f:
    mylist1 = pickle.load(f)
print(mylist1)

运行结果及详细报错内容

img

在上面的代码中,你使用了pickle模块来读取和存储文件中的数据,并使用append()方法向mylist2中添加了一个元素。

但是,在第一次打开文件时,你将空列表mylist2存储到了文件中,而不是读取已有的数据。这就导致了后面读取到的mylist2始终是空列表,而不是原来文件中存储的数据。

为了解决这个问题,你应该把第1、2行改为如下代码:

with open('./data/texT.txt', 'rb') as f:
    mylist2 = pickle.load(f)

这样,在第一次打开文件时就能读取已有的数据了。

另外,在第3,4行你打开的文件是 "./data/texT.txt",而在第5,6行你打开的文件是 "mylist.txt",两者不一样,这可能导致文件读取错误。

最后,最后一行的print(mylist1)应该改为print(mylist2),因为你最后操作的是mylist2,而不是mylist1

先读后写
import pickle

a = input("请输入:")
with open('mylist.txt', 'rb') as f:
    mylist2 = pickle.load(f)
    mylist2.append(a)

with open( 'mylist.txt', 'wb') as f:
    pickle.dump(mylist2, f)