0

我一直在尝试记录通过 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)
4

1 回答 1

0
\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,因为它会根据操作系统充当上述任何一种。

于 2020-02-13T20:57:28.917 回答