Как убрать кавычки и скобки вокруг вывода csvwriter

У меня есть датчик GPS, который выводит широту и долготу. Наряду с этим я вызываю текущее время в timec(). Я хочу вывести эти значения в текстовый файл, который я могу загрузить в Excel для экстраполяции. Мои результаты в настоящее время выглядят так

14:48:48,"(36.12306, -97.06177333333332)"

И мне нужно, чтобы мои результаты выглядели как

14:48:48, 36.12306, -97.06177333333332

Я пробовал то, что ниже:

      import time
import board
import busio

import adafruit_gps
import csv
import serial
import time
from datetime import datetime

def timec():
    now = datetime.now().time()
    current_time = now.strftime("%H:%M:%S")
    return current_time

def GPS():
    uart = serial.Serial("/dev/ttyUSB0", baudrate=9600, timeout=10)
    gps = adafruit_gps.GPS(uart, debug=False)  # Use UART/pyserial
    gps.send_command(b"PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0")
    gps.send_command(b"PMTK220,1000")
    last_print = time.monotonic()
    while True:
        gps.update()
        current = time.monotonic()
        if current - last_print >= 1.0:
            last_print = current
            if not gps.has_fix:
                print("Waiting for fix...")
                continue

            lat = gps.latitude
            lon = gps.longitude
            return lat,lon

if __name__ == '__main__':
    while True:
        ctime = timec()
        coord = GPS()
        Rows = (ctime,coord)
        with open('Text FILE69', 'a', newline='') as f:
            write = csv.writer(f)
            write.writerow(Rows)
            time.sleep(1)

Я знаю, что моя проблема заключается в том, как я называю широту и долготу. в 'main' и в нижней части GPS()

1 ответ

Распространите результат GPSв для разделения переменных.

Вы должны просто открыть файл один раз, а не каждый раз в цикле. Вы можете использовать f.flush()чтобы немедленно сбросить строку в файл.

      if __name__ == '__main__':
    with open('Text FILE69', 'a', newline='') as f:
        write = csv.writer(f)
        while True:
            ctime = timec()
            lat, lon = GPS()
            Rows = (ctime, lat, lon)
            write.writerow(Rows)
            f.flush()
            time.sleep(1)
Другие вопросы по тегам