Olá! Sou nova no python e estou encontrando uma dificuldade idiota, mas que não estou conseguindo resolver.
Fiz um código onde leio uma balança de carga e gravo um arquivo TXT com o resultado.
A criação do arquivo está perfeita, o problema é como o dado está sendo armazenado no arquivo. Não sei se pode ser algum problema de buffer.
Abro o arquivo como "w" para que o reescreva sempre que o peso muda e isto está dentro de um loop pois preciso que isso fique rodando infinitamente...
O problema é que ele está fazendo append no arquivo e não reescrevendo, ou seja, no arquivo deveria conter algo como D34950. e está aparecendo: D34950.D34950.D34950.D34950.D34950. etc.
Estou anexando o código abaixo...
Por favor, se alguém puder me ajude!
Silvia
----------------
import sys
import serial
from time import sleep
try:
ser = serial.Serial(port='COM1', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0)
peso = ""
if ser.isOpen():
while (True):
resposta = ser.read()
peso += resposta.decode("utf-8")
if resposta.decode("utf8") == ".":
dest = open("Z:\pesagem.txt", "w", encoding="utf-8")
dest.write(peso)
dest.close()
sleep(2)
except IOError:
print("Ocorreu um erro: ", sys.exc_info()[0])