【问题标题】:How to format the output text to a textfile?如何将输出文本格式化为文本文件?
【发布时间】:2016-01-14 16:10:22
【问题描述】:

我运行的代码如下所示:

##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 个值是这样定位的?

【问题讨论】:

    标签: python text formatting format


    【解决方案1】:

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

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

    【讨论】:

    • 甜蜜!我让它工作。不过,输出上有“[]”。是否可以删除它们并仅使用逗号分隔值?
    • 将列表转换为String并使用join方法:my_list = [list(data.values())[x] for x in [7, 9, 12]] my_string = ", " .join(my_list) # 如果不需要,也可以不加空格
    • 感谢您的帮助!我发现在将列表转换为字符串后可以使用 string = string[1:-1] 并且它给了我想要的输出~
    【解决方案2】:

    这样的事情应该可以工作:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多