Python регистрация данных CSV не работает в то время как цикл - PullRequest
0 голосов
/ 12 февраля 2020

Я пытался записать данные, полученные от Arduino через USB-порт, и странно то, что код работает на моей ма c просто отлично, но на windows он не будет писать. В начале я ожидал первоначального написания «ДАННЫХ», но он даже этого не написал. И когда я закомментировал весь l oop, это сработало (в файле 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)

1 Ответ

0 голосов
/ 13 февраля 2020
\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, так как он будет действовать как любой из вышеперечисленных в зависимости от операционной система.

...