Python 从二进制文件中读取多行
我有一个二进制文件,我想读取它的内容, 这是密码Python 从二进制文件中读取多行,python,Python,我有一个二进制文件,我想读取它的内容, 这是密码 with open ('file1', 'rb') as fp: itemlist = pickle.load(fp) print(itemlist) 我用来写入文件的代码是 with open('file1', 'ab') as fp: pickle.dump(training, fp) 该文件包含许多长度为4的列表。 问题是打印(itemlist)只是打印最后一个列表 虽然我希望它们都转换成二维numpy数组,但我甚至可以看到文件大小
with open ('file1', 'rb') as fp:
itemlist = pickle.load(fp)
print(itemlist)
我用来写入文件的代码是
with open('file1', 'ab') as fp:
pickle.dump(training, fp)
该文件包含许多长度为4的列表。
问题是打印(itemlist)只是打印最后一个列表
虽然我希望它们都转换成二维numpy数组,但我甚至可以看到文件大小随着每次追加调用而逐渐增加
我怎么做 如果您有许多长度为4的列表,则应将它们转储并加载为长度为4的列表。否则,您必须反复调用pickle.load,直到文件用尽。首先在保存后构建2d列表。这样,您就不需要多次写入/读取文件 例如:
import pickle
training = []
list1 = [2,4,5,6,7,7,2,6]
list2 = [5,6,53,6,75,3,53,65]
list3 = [46,89,24,64,243,25,6]
list4 = [78,875,24,24,64,363,25]
training.append(list1)
training.append(list2)
training.append(list3)
training.append(list4)
with open('file1', 'ab') as fp:
pickle.dump(training, fp)
with open ('file1', 'rb') as fp:
itemlist = pickle.load(fp)
print(itemlist)
输出:
[[2,4,5,6,7,7,2,6], [5,6,53,6,75,3,53,65], [46,89,24,64,243,25,6], [78,875,24,24,64,363,25]]
您是否多次写入该文件并每次追加?如果是这样,read将只读取您pickle的第一个对象(例如list)。您需要循环pickle.load来读取所有对象。二进制文件没有行。