【发布时间】:2021-06-02 14:40:40
【问题描述】:
我有一个传感器可以打印到我的COM4 端口。我可以使用serial 阅读此内容,例如:
import serial
ser = serial.Serial('COM4')
while True:
if ser.in_waiting > 0:
temp = ser.readline()
print(temp)
有没有一种有效的方法可以将其写入 CSV 文件而不是打印到控制台?
我遇到的问题是,如果我在中途停止脚本,那么对文件的更改似乎会被丢弃,即使我在 while True 循环之前包含了一个写入标头的步骤。
【问题讨论】:
-
我应该更具体一些,对于我的情况,当我正在读取实时传感时,如果我停止读取脚本,则文件不会更新并且所有更改都会丢失。
-
啊,我明白了。您想在写入文件后
flush()。 stackoverflow.com/questions/3976711/… -
这会导致显着减速吗?例如,与在每个
readline()打开文件并添加最新测量值相比? -
文件 IO 很昂贵,所以我希望它会。你可以试试看是不是太合你的胃口了。或者,您可以收听
SIGINT/SIGTERM并在发生这种情况时在退出之前关闭文件。 stackoverflow.com/questions/18499497/…