2011-03-02 53 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

相关问题