2016-11-12 112 views
0

分號單獨的文本我有這種格式的文本文件:與蟒蛇

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 

我需要在Python做的是,該行的每個記錄應該由分號隔開,如果沒有記錄(如名字或其他),腳本應該在兩個分號之間留下空格。

+2

好的!你有問題嗎? – jonrsharpe

回答

0

假設輸入行格式一致,並且我明白您的要求,可以按照此處指示的方式恢復數據。然後你可以用任何適合你的方式輸出它。

>>> 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')