EOFError 使用 pickle.load()
EOFError using pickle.load()
我有以下代码:
pos = [
[('the', 'DT'), ('rabbit', 'NN'), ... ],
[('he', 'PRP'), ('jokes', 'VBZ'), ... ],
...
]
with open(filename, 'w') as f:
pickle.dump(pos, f)
那我要加载内容:
with open(filename, 'r') as f:
pos = [pickle.load(f) for i in range(the_length)]
但后来我得到了这个例外:
...
File "C:\Anaconda\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "C:\Anaconda\lib\pickle.py", line 858, in load
dispatch[key](self)
File "C:\Anaconda\lib\pickle.py", line 880, in load_eof
raise EOFError
EOFError
实际上,pos
中的第一个列表已正确加载 ([('the', 'DT'), ('rabbit', 'NN'), ... ]
),但紧接着出现异常。
如果我打开文件,确实有问题:所有的句子都被存储了,但是文件以一长串这样的结尾:
aa(lp269
a(lp270
a(lp271
a(lp272
a(lp273
a(lp274
a(lp275
...
a(lp3531
a.
(我试图用 rb
和 wb
而不是 r
和 w
打开文件,但它没有解决任何问题)
如果你只有一个 dump
电话,你应该只有一个 load
电话。
with open(filename, 'r') as f:
pos = pickle.load(f)
我有以下代码:
pos = [
[('the', 'DT'), ('rabbit', 'NN'), ... ],
[('he', 'PRP'), ('jokes', 'VBZ'), ... ],
...
]
with open(filename, 'w') as f:
pickle.dump(pos, f)
那我要加载内容:
with open(filename, 'r') as f:
pos = [pickle.load(f) for i in range(the_length)]
但后来我得到了这个例外:
...
File "C:\Anaconda\lib\pickle.py", line 1378, in load
return Unpickler(file).load()
File "C:\Anaconda\lib\pickle.py", line 858, in load
dispatch[key](self)
File "C:\Anaconda\lib\pickle.py", line 880, in load_eof
raise EOFError
EOFError
实际上,pos
中的第一个列表已正确加载 ([('the', 'DT'), ('rabbit', 'NN'), ... ]
),但紧接着出现异常。
如果我打开文件,确实有问题:所有的句子都被存储了,但是文件以一长串这样的结尾:
aa(lp269
a(lp270
a(lp271
a(lp272
a(lp273
a(lp274
a(lp275
...
a(lp3531
a.
(我试图用 rb
和 wb
而不是 r
和 w
打开文件,但它没有解决任何问题)
如果你只有一个 dump
电话,你应该只有一个 load
电话。
with open(filename, 'r') as f:
pos = pickle.load(f)