如何删除 csvwriter 输出周围的引号和括号

How to remove quotation and parenthesis around csvwriter output

我有一个可以输出纬度和经度的 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()

的底部

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)