【问题标题】:Python csv data logging doesn't work in while loopPython csv数据记录在while循环中不起作用
【发布时间】:2020-05-27 09:15:53
【问题描述】:

我一直在尝试记录通过 USB 端口从 Arduino 接收到的数据,奇怪的是该代码在我的 mac 上运行良好,但在 windows 上它不会写入它。一开始我期待最初的写作“数据”,但它甚至没有写出来。当我注释掉它工作的整个循环时(它在 csv 文件中显示“DATA”)。

import serial

count = 1
port = serial.Serial('COM4', baudrate=9600, bytesize=8)
log = open("data_log.csv", "w")
log.write("DATA")
log.write("\n")
while 1:
    value = str(port.read(8), 'utf-8')
    value = value.replace('\r', '').replace('\n', '')
    if value.strip():
        log.write(str(count))
        log.write(',')
        log.write(value)
        log.write('\n')
        print(count)
        count += 1
    print(value)

【问题讨论】:

    标签: csv serial-port csv-write-stream


    【解决方案1】:
    \n = CR (Carriage Return) // Used as a new line character in Unix
    \r = LF (Line Feed) // Used as a new line character in Mac OS
    \n\r = CR + LF // Used as a new line character in Windows
    

    我认为它在 Windows 中不起作用,因为您需要寻找 CR LF。

    可能会尝试使用Environment.NewLine,因为它会根据操作系统充当上述任何一种。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 2011-10-19
      • 1970-01-01
      • 2016-10-21
      相关资源
      最近更新 更多