在python中用分号分隔文本

2024-10-01 15:32:19 发布

您现在位置: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

在Python中我需要做的是,行中的每个记录都应该用分号分隔,如果没有记录(如名字或其他),脚本应该在两个分号之间留一个空格。你知道吗


Tags: namenetadmin格式记录passwordsubscriberfirst
1条回答
网友
1楼 · 发布于 2024-10-01 15:32:19

假设输入行的格式是一致的,并且我理解您的要求,那么您可以按照这里指示的方式恢复数据。然后您可以以任何适合您的方式输出它。你知道吗

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

相关问题 更多 >

    热门问题