2016-11-12 3 views
0

Ich habe eine Textdatei in diesem Format:separater Text mit Semikolons in Python

subscriber=admin lname="adamec22a" password="kofola1224" first-name="Anton net na M.lehote,zapajal si to sam!!" last-name="Adamec 1.3.2012 skoncil zmluvu" phone="00421917499086" location="NB, Sturova 18, 2pos." rate-limit=" 1M/3M" last-seen=never 

Was muß ich in Python tun, ist, dass jeder Datensatz in der Zeile sollte durch ein Semikolon getrennt werden, und wenn es keine Record (wie Vorname oder etwas anderes) sollte das Skript dort ein Leerzeichen zwischen zwei Semikolons lassen.

+2

OK! Hast du eine Frage? – jonrsharpe

Antwort

0

Angenommen, dass die Eingabezeilen konsistent formatiert sind und ich verstehe, was Sie fragen, können Sie die Daten auf die hier angegebene Weise wiederherstellen. Dann können Sie es beliebig ausgeben.

>>> pieces = '''subscriber=admin lname="adamec22a" password="kofola1224" first-name="Anton net na M.lehote,zapajal si to sam!!" last-name="Adamec 1.3.2012 skoncil zmluvu" phone="00421917499086" location="NB, Sturova 18, 2pos." rate-limit=" 1M/3M" last-seen=never'''.split('=') 
>>> fieldNames = [ pieces[0] ] 
>>> for i in range(1, -1+len(pieces)): 
...  fieldNames.append(pieces[i][1+pieces[i].rfind(' '):]) 
... 
>>> fieldNames 
['subscriber', 'lname', 'password', 'first-name', 'last-name', 'phone', 'location', 'rate-limit', 'last-seen'] 
>>> fieldValues = [ pieces[-1]] 
>>> for i in range(-2+len(pieces),0,-1): 
...  fieldValues.append(pieces[i][:pieces[i].rfind(' ')]) 
... 
>>> fieldValues.reverse() 
>>> fieldValues 
['admin', '"adamec22a"', '"kofola1224"', '"Anton net na M.lehote,zapajal si to sam!!"', '"Adamec 1.3.2012 skoncil zmluvu"', '"00421917499086"', '"NB, Sturova 18, 2pos."', '" 1M/3M"', 'never'] 
>>> for fieldName, fieldValue in zip(fieldNames, fieldValues): 
...  fieldName, fieldValue 
...  
('subscriber', 'admin') 
('lname', '"adamec22a"') 
('password', '"kofola1224"') 
('first-name', '"Anton net na M.lehote,zapajal si to sam!!"') 
('last-name', '"Adamec 1.3.2012 skoncil zmluvu"') 
('phone', '"00421917499086"') 
('location', '"NB, Sturova 18, 2pos."') 
('rate-limit', '" 1M/3M"') 
('last-seen', 'never')