从命令行输出逐行处理

问题描述 投票:0回答:1

我有一个来自source的Python代码,该代码可用于处理GPRMC格式。我修改了代码,数据来自"gpsd -d | awk -F ':' 'BEGIN{OFS=\":\"}{print $2}' | grep GPRMC",并且是这样的列表

$GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70
$GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70

因此,当我启动它时,出现此错误:

    data = ser.readline()
AttributeError: 'str' object has no attribute 'readline

下面是代码的一部分:

port = "gpsd -d | awk -F ':' 'BEGIN{OFS=\":\"}{print $2}' | grep GPRMC"

print("Receiving GPS data")
ser = port

find = False
while find == False:
    print("Waiting for GPRMC data")
    data = ser.readline()
if data[0:6] == "$GPRMC":
    parsingData = data.split(",")
    print(parsingData)
if parsingData[2] == "A":
    parseGPS(data)
    find = True

[请帮助我解决此问题。ps:我不是python编码器,只是几天我才开始使用这种语言,对不起我的英语不好

python linux command pipe line
1个回答
0
投票

根据我的读物,您在操作系统中运行了“ gpsd -d | awk -F':''BEGIN {OFS = \”:\“} {print $ 2}'| grep GPRMC”,它返回的行类似于“ $ GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W * 70“。这是我的解决方案。希望对您有所帮助:

© www.soinside.com 2019 - 2024. All rights reserved.