2016-11-12 206 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')