Skip to main content
 首页 » 编程设计

python之在 Python 中连接由空行分隔的行

2025年05月04日12langtianya

我想使用 python 重新格式化下面的文本:

text = """17/05/2013 10:09:15,INFO,xxxxxxxxxx 
yyyyyy 
zzzzzz 
 
17/05/2013 10:09:15,INFO,xxxxxxxx 
yyyyyyy 
zzzzzzz""" 

将它们格式化成

17/05/2013 10:09:15,INFO,xxxxxxxxxxyyyyyyzzzzzz 
17/05/2013 10:09:15,INFO,xxxxxxxxyyyyyyyzzzzzzz 

我试过这个:

def strip(txt): 
ret="" 
for l in txt.split("\n"): 
    if l.strip() in ['\n', '\r\n']: 
        ret = ret + "\n" 
            else: 
            ret = ret + l.strip() 
print ret 

但事实证明,代码无法识别空行,结果是这样的:

17/05/2013 10:09:15,INFO,xxxxxxxxxxyyyyyyzzzzzz17/05/2013  
10:09:15,INFO,xxxxxxxxyyyyyyyzzzzzzz 

我该如何解决?

请您参考如下方法:

您可以将文本分成两部分,因为两部分之间由两行分隔:

>>> mylist = text.split('\n\n') 

然后打印每个值,去除字母串之间的新行:

>>> for i in mylist: 
...     print i.replace('\n','') 
...  
17/05/2013 10:09:15,INFO,xxxxxxxxxxyyyyyyzzzzzz 
17/05/2013 10:09:15,INFO,xxxxxxxxyyyyyyyzzzzzzz 

或者,如果您想将每一行存储在列表中,请使用列表理解:

>>> [i.replace('\n','') for i in mylist] 
['17/05/2013 10:09:15,INFO,xxxxxxxxxxyyyyyyzzzzzz', '17/05/2013 10:09:15,INFO,xxxxxxxxyyyyyyyzzzzzzz']