merkwürdiger timestamp

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
BlackJack

Beitragvon BlackJack » Freitag 20. März 2009, 08:36

@#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)
#cousin#
User
Beiträge: 25
Registriert: Mittwoch 18. März 2009, 22:56
Wohnort: Mannheim
Kontaktdaten:

Beitragvon #cousin# » Sonntag 29. März 2009, 13:44

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?
BlackJack

Beitragvon BlackJack » Sonntag 29. März 2009, 14:05

@#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.
#cousin#
User
Beiträge: 25
Registriert: Mittwoch 18. März 2009, 22:56
Wohnort: Mannheim
Kontaktdaten:

Beitragvon #cousin# » Sonntag 29. März 2009, 16:07

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?
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Beitragvon HWK » Sonntag 29. März 2009, 17:15

Statt

Code: Alles auswählen

x == 'a' or x == 'b' or x == 'c'
lieber

Code: Alles auswählen

x in 'abc'
MfG
HWK
#cousin#
User
Beiträge: 25
Registriert: Mittwoch 18. März 2009, 22:56
Wohnort: Mannheim
Kontaktdaten:

Beitragvon #cousin# » Sonntag 29. März 2009, 17:43

vielen Dank, das macht es bedeutend übersichtlicher
Benutzeravatar
str1442
User
Beiträge: 520
Registriert: Samstag 31. Mai 2008, 21:13

Beitragvon str1442 » Sonntag 29. März 2009, 19:28

Code: Alles auswählen

x in 'abc'


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.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Tom12