Seite 1 von 2
Verfasst: Freitag 20. März 2009, 08:36
von BlackJack
@#cousin#: Vielleicht solltest Du Dich mal mit Funktionen auseinandersetzen, um die Teillösungen sauber zu trennen und wiederverwendbar zu machen.
Und für Zeiten und Datumsangaben gibt es zum einen das `datetime`-Modul und zum anderen hätte man auch Deine manuelle Methode mit Zeichenkettenformatierung über den ``%``-Operator auf Zeichenketten wesentlich kompakter hinbekommen. Ungetestet:
Code: Alles auswählen
year, month, day, hour, minute = struct.unpack('>H4B', line.decode('hex'))
print 'Date and time: %d-%02d-%02d %02d:%02d' % (year, month, day, hour, minute)
Verfasst: Sonntag 29. März 2009, 13:44
von #cousin#
Hi Zusammen,
die Hinweise zu dem date-time-modul habe ich nun ebenfalls einfließen lassen, vielen Dank für den Hinweis.
Aber ich habe gerade bemerkt, dass ich ein anderes Problem habe. Die Funktion:
Code: Alles auswählen
asciiString = filter(lambda x: x in string.printable, asciiString)
filtert mir zwar alle Werte raus, die Steuerzeichen enthalten, aber leider auch Umlaute und ß.
Wie kann ich die filterfunktion dazu bringen, dass er mir diese Zeichen nicht filtert?
Verfasst: Sonntag 29. März 2009, 14:05
von BlackJack
@#cousin#: Falls die Daten in einer 1-Byte-pro-Buchstabe-Kodierung vorliegen, einfach `string.printable` plus die zusätzlichen Bytewerte für die Zeichen für den Test verwenden!?
Dann solltest Du aber den Namen `asciiString` ändern, denn ASCII enthält keine Umlaute.
Verfasst: Sonntag 29. März 2009, 16:07
von #cousin#
ok, danke, habs nun so gemacht:
Code: Alles auswählen
asciiString = filter(lambda x: x in string.printable or x == "\xdf" or x == "\xfc" or x == "\xf6" or x == "\xe4" or x == "\xdc" or x == "\xd6" or x == "\xc4", asciiString)
kann ich das mit nem Array, oder mit ner Liste irgendwie verkürzen?
Verfasst: Sonntag 29. März 2009, 17:15
von HWK
Verfasst: Sonntag 29. März 2009, 17:43
von #cousin#
vielen Dank, das macht es bedeutend übersichtlicher
Verfasst: Sonntag 29. März 2009, 19:28
von str1442
Statt dem würde ich aber eher einen Tupel mit den einzelnen Zeichen benutzen, einen String einfach als Sequenz für "nicht-veränderliche, fest definierte, heterogene Daten" zu benutzen finde ich etwas unpassend, rein semantisch.