2011-03-02 70 views
1

我正在使用以下代碼寫入文本文件。設置爲:連續寫入文本文件並確保每次都創建一個新文件

  1. 讀取'\ n'終止的數據關閉串口。
  2. 創建一個僅包含一行文本的文本文件。

_

import serial 

ser = serial.Serial (2 , baudrate = 57600 , timeout = 1) 
AngleText = open ("data.txt" , "w") 

while True: 

    line = ser.readline().strip('^\n\r') 
    print line 
    AngleText.write (str(line)) 
    AngleText.flush() 

ser.close() 

的問題是,數據被附加到文本文件。我想要的是隻有一行文本文件。我應該如何解決這個問題?謝謝!

+0

你確實意識到,一旦你覆蓋了文件,它就消失了吧?所以當下一個進來時,你只是扔掉每條線。 – katrielalex 2011-03-02 14:33:54

回答

6

一種解決方案是將openclose語句移入循環中,以便每次獲取數據時都會覆蓋該文件。例如:

import serial 

ser = serial.Serial (2 , baudrate = 57600 , timeout = 1) 
while True: 

    line = ser.readline().strip('^\n\r') 
    print line 
    AngleText = open ("data.txt" , "w") 
    AngleText.write (str(line)) 
    AngleText.close() 

ser.close() 
+0

完美!謝謝 – user582485 2011-03-02 13:00:40

相關問題