搅拌机中泡菜的操作2.56
问题描述:
我正在使用pySerial从Arduino(微控制器)获取数据。搅拌机中泡菜的操作2.56
数据存储在一个pickle文件中。它与Blender 2.49(python 2.7)很好地工作。
现在,转移到Blender的2.56(蟒蛇3.2),我收到以下错误:
f=open('abc.dat','r')
with serial.Serial('COM31',9600) as port :
for i in range(0, 10):
x = port.read(size=1)
print(int(x))
y=pickle.load(f)
f.close()
f=open('abc.dat','w')
y.append(i)
pickle.dump(y,f)
f.close()
port.close()
error:
Python script error from controller "Python Script#CONTR#1":
Traceback (most recent call last):
File "256script1.py", line 18, in <module>
f.close()
File "C:\PROGRA~1\BLENDE~1\Blender\2.54\python\lib\pickle.py", line 1365, in l
oad
encoding=encoding, errors=errors).load()
ValueError: read() from the underlying stream did notreturn bytes
Blender Game Engine Finished
是否有使用pickle
任何操作上的改变?
答
您可以在文本模式下打开文件,但对于腌菜它应该是二进制模式。在Python 2中,这并不重要(除了在Windows上),但在Python 3中它并不重要。
应该
f=open('abc.dat','rb')
你应该接受最好的回答你的问题。请接受一些答案。花时间回答问题真的很烦人,然后你什么也得不到。 – 2011-02-27 21:08:17
我真的很抱歉。但没有意识到这样的事情.. hw m我被派去做同样的事情? – change 2011-03-01 14:20:13
除了最佳答案之外,您还可以选中复选框。请阅读常见问题。 http://stackoverflow.com/faq – 2011-03-04 13:02:40