Как убрать кавычки и скобки вокруг вывода 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)