Das ganze ist aus Codestückchen aus der Doku, dem Forum und eigenen Gedankengängen zusammengesetzt:
Ziel des Skripts ist, eine Datenreihe aus einer Datei auszulesen und diese zur Basis 224 zu codieren.
Code: Alles auswählen
#! /usr/lib/python
#-*- coding:utf-8 -*-
import array
name1=dict()
name2=dict()
name3=dict()
name4=dict()
name5=dict()
liste_von_dicts=[name1, name2, name3, name4, name5]
def umwandler(zeile):
zeile.strip('\n')
datenliste=zeile.split('|')
result=""
for index, eintrag in enumerate(datenliste):
if eintrag in liste_von_dicts[index]:
result+=liste_von_dicts[index][eintrag]
else:
# Die ersten beiden koennen Werte groesser als 224 haben, deshalb 2 Eintraege. Die ersten 32 Zeichen sind zudem Steuerungszeichen, deshalb ausgeschlossen.
if index in range(2):
liste_von_dicts[index][eintrag] = array.array('B', [len(liste_von_dicts[index])/224+32, len(liste_von_dicts[index])%224+32]).tostring()
else:
liste_von_dicts[index][eintrag] = array.array('B',[len(liste_von_dicts[index])+32]).tostring()
result+=liste_von_dicts[index][eintrag]
with open("/tmp/datendatei","r") as daten:
with open("/tmp/codedatei","w") as datei
for line in daten:
datei.write(umwandler(line))
und wird dann zB zu !" (a.!
Falls Tippfehler enthalten sind gehen die auf meine Kappe und sind im Original nicht enthalten, da aus diversen Gründen direktes kopieren nicht möglich war. In einer späteren Version des Skripts wird sich natürlich auch der Inhalt der Dictionaries gemerkt, damit man die Daten auch wieder rekonstruieren kann, mir geht es aber erstmal nur um meine Implementierung für das Umwandeln.
