try.py:
import pickle
f=open('abc.dat','w')
x=[320,315,316]
y=pickle.load(f)
f.close()
f=open('abc.dat','w')
for i in x:
y.append(i)
pickle.dump(y,f)
f.close()use.py
import pickle
import os
os.system('try.py')
f=open('abc.dat', 'r')
print "abc.dat = "
x=pickle.load(f)
print x
print "end of abc.dat"
f.close();
y=x[:]
for z in x:
y.remove(z)
print "removing " + str(z)
print str(y) + " and " + str(x)
f=open('abc.dat', 'w')
pickle.dump(y, f)
f.close()错误:
Traceback (most recent call last):
File "G:\parin\new start\use.py", line 7, in <module>
x=pickle.load(f)
File "C:\Python26\lib\pickle.py", line 1370, in load
return Unpickler(file).load()
File "C:\Python26\lib\pickle.py", line 858, in load
dispatch[key](self)
File "C:\Python26\lib\pickle.py", line 880, in load_eof
raise EOFError
EOFError发布于 2011-02-12 20:30:14
错误在try.py中
f=open('abc.dat','w')
y=pickle.load(f)请注意,'w'模式将文件重置为0大小(即删除其内容)。传递'r'或不传递任何内容以打开abc.dat进行读取。
发布于 2011-02-12 20:30:27
这个例子对我不起作用。当文件不存在时,try.py会失败。
不过,我最大的建议是考虑使用JSON而不是pickle,因为这样可以获得更大的跨平台灵活性和更灵活的接口。
例如,使用此命令创建一个JSON行文件:
import json,random
with open("data.txt","w") as f:
for i in range(0,10):
info = {"line":i,
"random":random.random()}
f.write(json.dumps(info)+"\n")(显然,让info成为你想要的任何东西。)
然后使用这个来阅读它们:
import json
for line in open("data.txt"):
data = json.loads(line)
print("data:" + str(data))https://stackoverflow.com/questions/4978041
复制相似问题