[英]How to format the output text to a textfile?
我运行的代码如下所示:
##Prints the latitude and longitude every second.
import time
import microstacknode.hardware.gps.l80gps
if __name__ == '__main__':
gps = microstacknode.hardware.gps.l80gps.L80GPS()
while True:
data = gps.get_gpgga()
string=str(data.values())
text_file = open("/home/pi/fyp/gps.txt","a")
text_file.write(string + "\n")
time.sleep(1)
这是它的输出:
dict_values(['', '', '', '0', '', 155641.098, '0', 0.0, '$GPGGA', 0.0, '', '', ''])
dict_values(['', '', '', '0', '', 155642.098, '0', 0.0, '$GPGGA', 0.0, '', '', ''])
dict_values(['', '', '', '0', '', 155643.098, '0', 0.0, '$GPGGA', 0.0, '', '', ''])
dict_values(['', '', '', '0', '', 155644.098, '0', 0.0, '$GPGGA', 0.0, '', '', ''])
dict_values(['', '', '', '0', '', 155645.098, '0', 0.0, '$GPGGA', 0.0, '', '', ''])
但是,我只需要一些值。 即,第8、10和13个值(目前输出为“”)。 有什么办法可以过滤掉其余文本,所以我只能得到以下输出:
'','',''
'','',''
第8、10和13个值的位置在哪里?
您可以将dict_values(...)
转换为列表,并使用列表理解来访问所需的位置。
[list(data.values())[x] for x in [7, 9, 12]] # for 8th, 10th and 13th position
这样的事情应该起作用:
import time
import microstacknode.hardware.gps.l80gps
if __name__ == '__main__':
gps = microstacknode.hardware.gps.l80gps.L80GPS()
while True:
data = gps.get_gpgga()
values = data.values()
string = str(values[7]) + ', ' + str(values[9]) + ', ' + str(values[12])
text_file = open("/home/pi/fyp/gps.txt","a")
text_file.write(string + "\n")
time.sleep(1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.