不断写入文本文件并确保每次创建新文件

1 投票
1 回答
3374 浏览
提问于 2025-04-16 12:49

我正在使用下面的代码写入一个文本文件。设置是:

  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()

问题是,数据会被追加到文本文件中。我想要的是文本文件只包含一行。该怎么解决这个问题呢?谢谢!

1 个回答

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()

撰写回答