使用实时读取向 numpy 添加新行
add new row to numpy using realtime reading
我正在使用 microstacknode 加速度计并打算将其保存到 csv 文件中。
while True:
numpy.loadtxt('foo.csv', delimiter=",")
raw = accelerometer.get_xyz(raw=True)
g = accelerometer.get_xyz()
ms = accelerometer.get_xyz_ms2()
a = numpy.asarray([[raw['x'],raw['y'],raw['z']]])
numpy.savetxt("foo.csv",a,delimiter=",",newline="\n")
但是,保存仅在 1 行上完成。有什么帮助吗? python.
还是个菜鸟
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()
打开文件并承诺即使出现异常也会关闭它。例如,如果您使用 Ctrl-C
.
跳出 while True
循环
我正在使用 microstacknode 加速度计并打算将其保存到 csv 文件中。
while True:
numpy.loadtxt('foo.csv', delimiter=",")
raw = accelerometer.get_xyz(raw=True)
g = accelerometer.get_xyz()
ms = accelerometer.get_xyz_ms2()
a = numpy.asarray([[raw['x'],raw['y'],raw['z']]])
numpy.savetxt("foo.csv",a,delimiter=",",newline="\n")
但是,保存仅在 1 行上完成。有什么帮助吗? python.
还是个菜鸟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()
打开文件并承诺即使出现异常也会关闭它。例如,如果您使用 Ctrl-C
.
while True
循环