@Bee: Ja, dann brauchst Du noch eine Liste in der Du die Listen speicherst und eben eine Schleife um das einlesen von den 8 Bytes. Wobei sich 94 nicht durch 8 teilen lässt, also kannst Du nicht in jeder Liste 8 Zahlen haben.
Die Listen sollten auch bessere Namen als `li1` und `li2` bekommen. Namen sollen dem Leser verraten was die Werte für welche die Namen stehen im Kontext des Programms bedeuten. Und nicht irgendwas sinnfreies, durchnummeriertes. Konkrete Typen sollte man auch nicht in den Namen schreiben. Und in der Regel ist ein aussagekräftiger Name länger als ein Zeichen. Man bräuchte auch weniger Namen wenn man nicht jedes Zwischenergebnis an einen eigenen Namen binden würde. Solange ein Ausdruck nicht zu unübersichtlich und gross wird, würde ich Zwischenergebnisse nur an Namen binden wenn sie an mehr als einer Stelle benötigt werden.
Die `byteorder` ist bei einzelnen Bytes egal. Das mit dem `int.from_bytes()` ist aber bei Einzelbytes sowieso unnötig, denn der `read()`-Aufruf liefert ein `bytes`-Objekt zurück und an die Zahlwerte der einzelnen Bytes kommt man per Indexzugriff. An der Stelle stellt sich auch die Frage warum 8 Bytes in eine Liste lesen, wenn man einfach mit *einem* `read()`-Aufruf die 8 Bytes lesen kann. Die muss man dann ja auch nicht unbedingt in eine Liste verfrachten, sondern kann sie im `bytes`-Objekt belassen.
Einrücktiefe ist per Konvention übrigens vier Leerzeichen pro Ebene. Das, und noch einiges andere, kann man im
Style Guide for Python Code nachlesen.
Edit: Der bisherige Code in einfacher und mit ordentlichen Namen und mit dem Hauptprogramm in einer Funktion (ungetestet):
Code: Alles auswählen
#!/usr/bin/env python
from __future__ import print_function
import serial
from contextlib import closing
COM_PORT_NUMBER = 6
BAUD_RATE = 9600
def main():
with closing(serial.Serial(COM_PORT_NUMBER, BAUD_RATE)) as connection:
print(connection.name)
byte_values = list(connection.read(8))
print(byte_values)
if __name__ == '__main__':
main()
Und auch ohne die zweite, redundante Liste mit den Zeichenketten.