Een meting naar een bestand schrijven met python

Ik ben nieuw bij Raspberry, dus ik heb een beetje hulp nodig. Ik heb een DS18B20-temperatuursensor, waarvan ik de metingen in een bestand wil schrijven. Ik laat een script lopen, waarbij het afdrukken van de metingen elke seconde op het scherm wordt uitgevoerd, terwijl tegelijkertijd het tekstbestand met de laatste meting wordt bijgewerkt, maar ik zou graag alle metingen in het tekstbestand willen hebben.

Ik gebruik dit script:

print(read_temp())

dataAsInt = (read_temp())

    dataAsString = str(dataAsInt)

    fb = open("/home/pi/test2","a" '\n')
    fb.write(dataAsString) 
    fb.close()

Ik heb geprobeerd "a" te gebruiken om toe te voegen in plaats van te schrijven en '\ n' om op de volgende regel te schrijven.

Ik hoop dat iemand me de juiste richting kan wijzen.

1
Hallo en welkom! Merk op dat de vraag niet pi-specifiek is (en daarom niet-topic), maar alleen gerelateerd is aan python als algemene programmeertaal.
toegevoegd de auteur Ghanima, de bron
Technisch gezien zou dat Stack Stack zijn. Maar laten we proberen deze hier uit te zoeken. Als het achteraf gesloten is, nou dan dat is dat.
toegevoegd de auteur Ghanima, de bron
Bedankt, dus ik had in welke groep moeten posten?
toegevoegd de auteur Steven Burnap, de bron

1 antwoord

fb = open ('/ home/pi/test2', 'a +')

zou het moeten doen. Het opent het bestand in de toevoegmodus voor lezen en schrijven. Plaats de '\ n' er is niet wat je wilt. Voeg in plaats daarvan eenvoudig een '\ n' toe telkens wanneer u een regeleinde wilt, bijvoorbeeld fb.write ( '\ n') . Voor het gegeven voorbeeld zou dat er als volgt uitzien:

dataAsInt = (read_temp())
dataAsString = str(dataAsInt)

fb = open('/home/pi/test2','a+')
fb.write(dataAsString) 
fb.write('\n')
fb.close()

Houd er rekening mee dat open() staat (bijv. er zal een regeleinde zijn, misschien behandelt je teksteditor het niet goed):

De standaardinstelling is om de tekstmodus te gebruiken, die '\ n' tekens naar een platformspecifieke weergave kan converteren tijdens het schrijven en weer terug bij het lezen.

2
toegevoegd
Als u fb.write ('\ n') achter fb.write (dataAsString) (op de volgende regel) plaatst die geen regelafbreking toevoegt? Het zou moeten.
toegevoegd de auteur Ghanima, de bron
Het toevoegen van de 'a +' loste het probleem op door alle metingen toe te voegen. Maar ik kan de \ n niet laten werken.
toegevoegd de auteur Steven Burnap, de bron
Ik heb je de eerste keer verkeerd begrepen. Het lost het probleem op, ik registreer nu mijn temperatuur in het tekstbestand met een nieuwe regel voor elke meting. Hartelijk bedankt
toegevoegd de auteur Steven Burnap, de bron