2016-08-04 37 views
0

Ich versuche, ein sehr einfaches Skript zu haben, um Daten von der seriellen Schnittstelle zu lesen und es in eine TXT-Datei zu schreiben. Meine Daten sind immer die gleiche und zum Beispiel so aussehen: ‚4 \ r \ n‘schreibe eine Datei von der seriellen in Python in Windows

import serial 
import time 
ser = serial.Serial('COM5', 9600, timeout=0) 

while 1: 
    data=ser.readline() 
    print data 
    f = open('myfile.txt','w') 
    data=str(data) 
    f.write(data) 
    f.close() 
    time.sleep(1) 

Ich bin mit python2.7 auf windows 7 meinen Druck funktioniert ich die Daten bekommen, aber ich couldn‘ t schreibe auf Datei ...

vielen Dank!

Antwort

1

Die Option 'w' in open() weist Python an, die Datei zuerst zu löschen und dann zu öffnen. Versuchen Sie, die 'w' in eine 'a' ändern, so dass Python neue Daten an das Ende der Datei anhängen, anstatt die Datei jedes Mal zu löschen.

f = open('myfile.txt', 'a') 

Sie können mehr über die open Funktion here lesen. Überprüfen Sie speziell die Dokumentation für das Argument mode.

+0

Es wäre einfacher, einfach das 'open' aus der Schleife zu entfernen und eine 'with'-Anweisung zu verwenden, um sicherzustellen, dass die Datei geschlossen wird. – eryksun

+0

Oh, da stimme ich völlig zu. Ich wollte eine Antwort geben, die sich so wenig wie möglich geändert hat, aber eine bessere Lösung wäre etwas wie du beschrieben hast. –

+0

Vielen Dank !! – Dadep