2015-04-21 121 views
0

我已經編寫了下面的代碼我能夠打印出Lat和lon的解析值,但我無法將它們寫入文件。我試過沖洗,也試圖關閉文件,但沒用。有人可以指出這裏有什麼錯。無法使用Python 2.7寫入文件

import os 
import serial 
def get_present_gps(): 
    ser=serial.Serial('/dev/ttyUSB0',4800) 
    ser.open() 
       # open a file to write gps data 
    f = open('/home/iiith/Desktop/gps1.txt', 'w') 
    data=ser.read(1024) # read 1024 bytes 
    f.write(data) #write data into file 
    f = open('/home/iiith/Desktop/gps1.txt', 'r')# fetch the required file 
    f1 = open('/home/iiith/Desktop/gps2.txt', 'a+') 
    for line in f.read().split('\n'): 
     if line.startswith('$GPGGA'): 

      try: 
       lat, _, lon= line.split(',')[2:5] 
       lat=float(lat) 
       lon=float(lon) 

       print lat/100 
       print lon/100 
       a=[lat,lon] 
       f1.write(lat+",") 
       f1.flush() 
       f1.write(lon+"\n") 
       f1.flush() 
       f1.close() 
     except: 
      pass 
while True: 
    get_present_gps() 
+0

'除了:pass'不能修復錯誤;它只是讓Python停止告訴你他們。如果你不使用它,Python會給你一些關於你做錯事情的有用信息。 – user2357112

+0

你能澄清你的意思嗎「無法寫入文件」?當你運行你當前的代碼時發生了什麼?你預期會發生什麼?如果你刪除了'try'和'except'塊,你會看到什麼異常? – Blckknght

回答

0

您在使用except: pass來覆蓋錯誤。不要那樣做......永遠。至少記錄異常。

它肯定覆蓋的一個錯誤是lat+",",它將因爲它的float+str而失敗,並且它沒有實現。但可能還有更多。