2011-02-09 3 views
0

Я пытаюсь прочитать данные в Blender с внешнего устройства, подключенного к Arduino, и сохранить его в файл. Но он дает эту ошибкуОшибка при обработке файлов в Blender с использованием Python

SyntaxError: invalid syntax 
Python script error from controller "contr#CONTR#1": 
Traceback (most recent call last): 
    File "SerialBGE.py", line 6, in <module> 
    f=open('abc.dat', 'r') 
IOError: [Errno 2] No such file or directory: 'abc.dat' 

Мой код верный, и я не понимаю проблему.

serial.py:

import GameLogic 
import pickle 
import os 

os.system('dane.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() 
    contr = GameLogic.getCurrentController() 
    location=contr.actuators["loc"] 
    y = 0.001*(ord(z)-128) 
    location.dLoc=[y,0,0] 
    contr.activate(location) 

dane.py:

import serial 
import pickle 

with serial.Serial(COM3,9600) as port, open('abc.dat','r') as f: 
    for i in range(0, 10): 
     x = port.read(size=1) 
     y=pickle.load(f) 
     f.close() 
     f=open('abc.dat','w') 
     for i in x: 
      y.append(i) 
     pickle.dump(y,f) 
     f.close() 
port.close() 

ответ

3

Вы получаете сообщение об ошибке, так как файл 'abc.dat' не существует в первый раз при запуске программы.

Прежде чем «abc.dat» существует, вам необходимо обработать начальный регистр, когда вы запускаете программу в первый раз.

+0

Итак, прочитайте, добавьте, а затем напишите окончательные данные. В этом случае мой код в порядке. И он отлично работает, когда я помещаю свои данные вместо port.read(). – change

+1

Это нормально, но подумайте о своей структуре: вы читаете файл, добавляете новые данные и записываете его обратно. Но что происходит, когда вы запускаете его в первый раз? Файл не существует для чтения - вам нужно обработать этот случай. – payne

Смежные вопросы