@bachatero18: Heute mit Python 2.7 anzufangen ist ein bisschen spät: https://pythonclock.org/
Die Baudrate sieht merkwürdig aus, und die Zeile ist auch gar nicht zuende.
Wenn Du genau den selben Quelltext hast und nur die Dateiendung unterschiedlich ist, dann schreibt Python die gleichen Daten. Wenn Du da einen Unterschied siehst, dann liegt das an dem Programm oder den Programmen mit denen Du Dir die Daten danach anschaust.
`Serial`-Objekte sind Kontextmanager – die kann man mit ``with`` benutzen. Genau wie man das auch bei der Datei machen sollte.
Die Datei immer wieder zu öffnen und zu schliessen ist ineffizient. Warum öffnest Du die nicht einmal am Anfang, vor der Schleife?
`Serial`-Objekte sind ausserdem über ihre Zeilen iterierbar. Da kann man also einfach eine ``for``-Schleife drüber schreiben statt der ``while``-Schleife. Wo man anstelle der 1 auch besser `True` schreiben würde.
Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen: Konstanten (KOMPLETT_GROSS) und Klassen (MixedCase).
Eingerückt wird mit vier Leerzeichen pro Ebene.
unerwünschte Leerzeile bei Datenspeicherung in csv Datei
- __blackjack__
- User
- Beiträge: 14418
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
“The city's central computer told you? R2D2, you know better than to trust a strange computer!” — C3PO
Gute Bücher, die einem Anfänger das erklären, kenne ich nicht. Man schaut sich das einfach an guten Beispielen ab:
Code: Alles auswählen
import serial
with serial.Serial('COM3') as input, open("test.csv", "a") as output:
for line in input:
line = line.decode('ASCII')
print(line.rstrip())
output.write(line)- __blackjack__
- User
- Beiträge: 14418
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@bachatero18: ``with`` kommt im Tutorial in der Python-Dokumentation vor, im Abschnitt „Reading and Writing Files“ mit Beispiel für eine Datei. Dann ist das Schlüsselwort selbst natürlich in der Referenzdokumentation mit einem allgemeinen Beispiel wo man auch sieht was Sirius3 gemacht hat: mehr als ein Objekt mit einem ``with`` zu verwenden. Dort ist ein Link auf einen Abschnitt für Kontextmanager allgemein und an den beiden letztgenannten Stellen ist ein Link auf „PEP343 The with statement“ wo die Spezifikation und die Motivation hinter dieser Einweisung dokumentiert ist. Auch mit Beispielen.
Das `Serial`-Objekte Kontextmanager sind, also mit ``with`` verwendet werden können, sieht man in der PySerial-Dokumentation gleich am Anfang im Abschnitt „Short inrtroduction“ der überwiegend aus kleinen Beispielen besteht.
Was für ein Array? Du liest da ja *Zeilen*. Was erwartest Du denn wie die aussehen? Was steht da drin? Wenn Du Binärdaten erwartest, dann darfst Du nicht `readline()` verwenden. Mir fällt auch gerade auf das Du einen Timeout setzt, im Code selbst dann aber die Fälle die dadurch entstehen können gar nicht behandelst‽
@Sirius3: Dein Beispiel entfernt doch jetzt aber alle Zeilenenden aus den Daten und schreibt alles in die gleiche Zeile in die Datei. Wenn da b'12\n3\n' gesendet wird, kann man das in der Datei nicht mehr von b'1\n23\n' unterscheiden weil da nur noch b'123' drin steht.
Das `Serial`-Objekte Kontextmanager sind, also mit ``with`` verwendet werden können, sieht man in der PySerial-Dokumentation gleich am Anfang im Abschnitt „Short inrtroduction“ der überwiegend aus kleinen Beispielen besteht.
Was für ein Array? Du liest da ja *Zeilen*. Was erwartest Du denn wie die aussehen? Was steht da drin? Wenn Du Binärdaten erwartest, dann darfst Du nicht `readline()` verwenden. Mir fällt auch gerade auf das Du einen Timeout setzt, im Code selbst dann aber die Fälle die dadurch entstehen können gar nicht behandelst‽
@Sirius3: Dein Beispiel entfernt doch jetzt aber alle Zeilenenden aus den Daten und schreibt alles in die gleiche Zeile in die Datei. Wenn da b'12\n3\n' gesendet wird, kann man das in der Datei nicht mehr von b'1\n23\n' unterscheiden weil da nur noch b'123' drin steht.
“The city's central computer told you? R2D2, you know better than to trust a strange computer!” — C3PO
