Seite 2 von 2

Re: Pyton 3 Serial Fehler

Verfasst: Freitag 5. Januar 2018, 10:13
von Sirius3
@AnDre86: am besten öffnet man Dateiobjekte mit `with`:

Code: Alles auswählen

with serial.Serial('COM1', 19200, timeout=1) as ser:
    while True:
        serial_line = ser.readline()
        if serial_line:
            log = serial_line.decode('utf-8')
            print(log)
            with open(r"C:\Users\x\Desktop\Test\Messung.txt", "a") as f:
                f.write(log)
da das Protokoll doch wahrscheinlich zeilenbasiert ist, macht das timeout hier nicht wirklich Sinn:

Code: Alles auswählen

with serial.Serial('COM1', 19200) as ser:
    while True:
        serial_line = ser.readline()
        log = serial_line.decode('utf-8')
        print(log)
        with open(r"C:\Users\x\Desktop\Test\Messung.txt", "a") as f:
            f.write(log)
Zu Deiner Frage: Dateinamen sind auch nur Strings, so dass man sie einfach mit Variablen zusammen formatieren kann.

Re: Pyton 3 Serial Fehler

Verfasst: Freitag 5. Januar 2018, 11:13
von AnDre86
Das ist aber eine sehr kurze und elegante Lösung.
Hab mir die ganze Zeit schon nen Kopf zerbrochen wie ich aus dem Loop komme.

Jetzt hab ich aber noch eine Frage dazu, das wird ja nur einmal ausgeführt was mache ich wenn ich aber in 3 kurzen Zeitabständen 3 mal Daten gesendet bekomme ohne immer wieder das Script neu öffnen zu müssen?

Danke für eure Hilfe.

Re: Pyton 3 Serial Fehler

Verfasst: Freitag 5. Januar 2018, 11:29
von Sirius3
@AnDre86: das verstehe ich nicht, Du hast doch eine Endlosschleife.

Re: Pyton 3 Serial Fehler

Verfasst: Freitag 5. Januar 2018, 11:34
von AnDre86
Mein fehler funktioniert so gut. :)

Habs auch mit dem Datum hinbekommen.

Code: Alles auswählen

                date = time.strftime("%d.%m.%Y")
                with open(r"C:\Users\x\Desktop\Test\{date}.txt".format(**vars()), "a") as f:
                    f.write(log)
Dann steht die Grund Funktion sehr schön, danke allen für die Hilfe. Dann kann ich es ja nach und nach ausbauen.

LG

Re: Pyton 3 Serial Fehler

Verfasst: Freitag 5. Januar 2018, 11:36
von Sirius3
@AnDre86: mach es explizit:

Code: Alles auswählen

with open(r"C:\Users\xx\Desktop\Test\{date}.txt".format(date=date), "a") as f:
    f.write(log)
um die Dateien richtig sortiert zu bekommen, wird das Jahr immer als erstes ausgegeben:

Code: Alles auswählen

date = time.strftime("%Y.%m.%d")

Re: Pyton 3 Serial Fehler

Verfasst: Freitag 5. Januar 2018, 11:38
von AnDre86
ok alles klar :)