Die letzte Aufgabe die dabei noch nicht klappt, ist das kürzen der Punktbezeichnung auf 8 Stellen.
Ein Name von der Art:
'127_A_121-128_A_001', '1037_A_009-1040_A_001', '125_S_001'
soll auf 8 Stellen gekürzt werden wobei es sehr ähnliche Namen gibt, da einige einfach durchnummerierte Abandlungen sind (z.B. '127_A_121-128_A_001', '127_A_122-128_A_001' oder '125_S_001', '125_S_002')
Damit nachher eine sinnvolle Zuordnung gemacht werden kann und damit keine Probleme entstehen müssen die 8 Stelligen Strings Eindeutig und Rückführbar(möglichst auch noch von Menschen, wenn z.B. 128A noch erkennbar ist, ist das von Vorteil) sein.
Die Strings mit re zu zerlegen und z.B. die _ zu entfernen ist kein Problem, wie ich jedoch aus den übrigen Daten einen Wert mit weniger Stellen generieren kann, ist mir nicht klar.
Code: Alles auswählen
import re
bstr='K2002/2 1037_A_009-1040_A_001'
rep_partn=re.compile('(K2002/[0-9]{1,6}) (.*)' )
ree_partn=re.match(rep_partn,bstr)
str_partn=''.join(bstr[ree_partn.start(2):ree_partn.end(2)])
str_partn=str_partn.replace('_','')
str_partn_anfang=str_partn[0:5]
str_partn_ende=str_partn[5:]
Bei Bedarf kann ich den Rest des Codes (mit dem Das File eingelesen wird etc.) auch posten.