2016-01-16 71 views
-1

我想從我的Raspberry Pi B +上的GPS模塊獲取經度,緯度和高度。蟒蛇刪除''在字符串?

目前這裏運行此代碼:

## 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: 
     try: 
      data = gps.get_gpgga() 
     except microstacknode.hardware.gps.l80gps.NMEAPacketNotFoundError: 
      continue 
     List = [list(data.values())[x] for x in [7, 9, 12]] 
     string=str(List) 
     string = string[1:-1] 
     text_file = open("/home/pi/fyp/gps.txt","a") 
     text_file.write(string + "\n") 
     time.sleep(1) 

這是說代碼的輸出:

0.0, 0.0, '10.2' 
0.0, 0.0, '3.2' 
0.0, 0.0, '10.1' 
0.0, 0.0, '3.1' 
0.0, 0.0, '4.5' 
0.0, 0.0, '20.1' 
0.0, 0.0, '3583.1232' 
0.0, 0.0, '102.01' 
0.0, 0.0, '32.131' 
0.0, 0.0, '421.32' 
0.0, 0.0, '12391.11' 
0.0, 0.0, '323.411' 

是否可以刪除「」報價在輸出的最後一節,離開只是輸出的前兩個部分中的數字?

+0

簡要說明:'text_file.write(string.replace(「'」,'')+「\ n」)'。 – TigerhawkT3

+0

另外,你有沒有嘗試使用谷歌搜索你的問題的標題? – TigerhawkT3

回答

0

因爲你將列表轉換爲字符串,實際上你真的不應該那樣做。我建議使用', '.join()代替:

List = [list(data.values())[x] for x in [7, 9, 12]] 
string = ', '.join(map(str, List)) 

讓我們來看看什麼是錯的:

>>> l = ['123', 456] 
>>> str(l) 
"['123', 456]" 

>>> print(str(l)) 
['123', 456] 

>>> ', '.join(map(str, l)) 
'123, 456' 

>>> print(', '.join(map(str, l))) 
123, 456 

因爲Python使用引號說:這個對象是一個字符串

而當您轉換其中包含字符串對象的對象時,引號將仍然存在,而不是自動刪除。