读取文件时替换单一换行符多个换行符

use*_*r54 5 python regex file

我有下一个代码,该代码从多个文件中读取,解析获得的行并打印结果:

import os
import re

files=[]
pars=[]

for i in os.listdir('path_to_dir_with_files'):
    files.append(i)

for f in files:
    with open('path_to_dir_with_files'+str(f), 'r') as a:
       pars.append(re.sub('someword=|\,.*|\#.*','',a.read()))

for k in pars:
   print k
Run Code Online (Sandbox Code Playgroud)

但我有在输出多个新线路的问题:

test1


test2
Run Code Online (Sandbox Code Playgroud)

取而代之的是,我想获得下一个结果,在输出中没有空行:

 test1
 test2
Run Code Online (Sandbox Code Playgroud)

等等。

我尝试过使用regexp:

pars.append(re.sub('someword=|\,.*|\#.*|^\n$','',a.read()))
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。我也尝试使用strip()和rstrip()包括replace。它也不起作用。

能否请你帮忙?

Kri*_*ris 8

您可以使用第二个正则表达式将多个新行替换为一个新行,并使用strip摆脱最后一个新行。

import os
import re

files=[]
pars=[]

for i in os.listdir('path_to_dir_with_files'):
    files.append(i)

for f in files:
    with open('path_to_dir_with_files/'+str(f), 'r') as a:
        word = re.sub(r'someword=|\,.*|\#.*','', a.read())
        word = re.sub(r'\n+', '\n', word).strip()
        pars.append(word)

for k in pars:
   print k
Run Code Online (Sandbox Code Playgroud)