Операция соления в Blender 2.56 - PullRequest
       27

Операция соления в Blender 2.56

1 голос
/ 27 февраля 2011

Я использую pySerial для получения данных от Arduino (микроконтроллер).

Данные хранятся в файле выбора.Он работал нормально с Blender 2.49 (python 2.7).

Теперь, переходя на Blender 2.56 (python 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?

1 Ответ

1 голос
/ 28 февраля 2011

Вы открываете файл в текстовом режиме, но для солений он должен быть в двоичном режиме.В Python 2 это не имеет значения (за исключением Windows), но в Python 3 это имеет значение.

...