如何将输出文本格式化为文本文件?

时间:2016-01-14 16:10:23

标签: python text formatting format

我的代码运行如下:

##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个值的位置是什么?

2 个答案:

答案 0 :(得分:1)

您可以将dict_values(...)转换为列表,并使用列表推导来访问所需的位置。

[list(data.values())[x] for x in [7, 9, 12]] # for 8th, 10th and 13th position

答案 1 :(得分:0)

这样的事情应该有效:

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)