NumPy - не лучшее решение для такого рода вещей. Это должно делать то, что вы собираетесь:
while True:
raw = accelerometer.get_xyz(raw=True)
fobj = open('foo.csv', 'a')
fobj.write('{},{},{}\n'.format(raw['x'], raw['y'], raw['z']))
fobj.close()
Здесь fobj = open('foo.csv', 'a')
файл открывается в режиме добавления. Поэтому, если файл уже существует, следующая запись будет идти до конца файла, сохраняя данные в файле. Давайте посмотрим на ваш код. Эта линия:
numpy.loadtxt('foo.csv', delimiter=",")
читает весь файл, но лань ничего с ней на чтения не делать, потому что вы не присвоить переменной. Вы должны были бы сделать что-то вроде этого:
data = numpy.loadtxt('foo.csv', delimiter=",")
Эта строка:
numpy.savetxt("foo.csv",a,delimiter=",",newline="\n")
Создает новый файл с именем foo.csv
перезапись существующего. Таким образом, вы видите только одну строку, последнюю написанную.
Это должно сделать то же самое, но дос не открыт и закройте файл все время:
with open('foo.csv', 'a') as fobj:
while True:
raw = accelerometer.get_xyz(raw=True)
fobj.write('{},{},{}\n'.format(raw['x'], raw['y'], raw['z']))
with open()
открывает файл с обещанием закрыть его, даже в случае исключения. Например, если вы выходите из цикла while True
с Ctrl-C
.
Спасибо, чувак. Оценил это! – CherChuan