Запись данных в CSV в бесконечном цикле ⇐ Python

Программы на Python
Anonymous
Запись данных в CSV в бесконечном цикле

Сообщение Anonymous »

еще один вопрос о проекте, с которым у меня вчера уже были проблемы. Это было исправлено, но теперь у меня другие проблемы. По сути, я пытаюсь пойти дальше в проекте, который разработал ранее в этом году. Я построил собственную метеостанцию ​​для компании, в которой работаю, и теперь хотел бы найти способ эффективно обмениваться ее данными. Он работает с Arduino Uno, который подключен к компьютеру и записывает свои значения в последовательный порт. Мой скрипт Python может прочитать его и «перевести», чтобы значения можно было записать в CSV именно так, как я хочу. Однако сценарий должен работать до тех пор, пока я его не остановлю, поэтому я поместил его в бесконечный цикл. По этой причине в файл CSV записывается только последнее значение, считанное из последовательного порта, за исключением записи всех них одно за другим, строка за строкой. Я предполагаю, что это потому, что я открывал файл и таким образом стирал значения из CSV на каждой итерации цикла, но не нашел способа сделать это по-другому. Если CSV находится только перед циклом, то внутри ничего не записывается. После этого я выложил код, не обращайте внимания на длинные выражения, все работает нормально!

Код: Выделить всё

import serial
import csv
import datetime

series = input("Write here the racing series (eg. DTM, GTM, NLS, N24) : ")
event = input("Write here the event (eg. R01, R02,...) : ")
track = input("Write here the racetrack (eg. NBR, HHR, RBR, SPA,...) : ")

arduino_port = "COM16"
baud = 115200

ser = serial.Serial(arduino_port, baud)
print("Connected to Arduino port:" + arduino_port)

i = 0;
while i>> %Run WeatherStationExportCSV.py
Write here the racing series (eg. DTM, GTM, NLS, N24) : DTM
Write here the event (eg. R01, R02,...) : R08
Write here the racetrack (eg. NBR, HHR, RBR, SPA,...) : HHR
Connected to Arduino port:COM16
[['10/10/24', '13:49:08', ' ', 'DTM', 'R08', ' ', ' ', ' ', 'HHR', ' ', '54.0', '23.12', '19.87', '1012.67', '315.0', '0.0', '0.3', '24']]
[['10/10/24', '13:50:08', ' ', 'DTM', 'R08', ' ', ' ', ' ', 'HHR', ' ', '54.0', '23.09', '19.87', '1012.69', '315.0', '0.0', '0.3', '24']]
[['10/10/24', '13:51:08', ' ', 'DTM', 'R08', ' ', ' ', ' ', 'HHR', ' ', '54.0', '23.10', '19.94', '1012.73', '315.0', '0.0', '0.3', '24']]
Я считываю значения с Arduino каждую минуту, что и ожидалось, но получаю только последнее значение в своем CSV-файле, выглядящее так:
10/10/24,13:51:08, ,DTM,R08, , , ,HHR, ,54.0,23.10,19.94,1012.73,315.0,0.0,0.3,24
Не могли бы вы помочь мне с этим? Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/790 ... inite-loop

Вернуться в «Python»