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)
在上面的代码中,你使用了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)