如何从文件python中删除行空间

时间:2016-11-16 22:18:36

标签: python python-2.7

我有这样的文件。

Girl: I am girl.

Boy:

I am boy

我正在使用此代码删除行间距。

import string
from itertools import ifilter, imap
print '\n'.join(ifilter(None, imap(string.strip, open('doc1.txt'))))

使用它,它给了我这个输出。

Girl: I am girl.
Boy:
I am boy

不会删除Boy:I am boy之间的空格。我怎么能删除那个行空间?我希望以这种格式输出。

Girl: I am girl.
Boy:  I am boy.

2 个答案:

答案 0 :(得分:0)

读取文件,然后打印那些非空的行。

with open('test', 'r') as fd:
    for l in fd:
        if l != '\n':
            print(l.strip())

答案 1 :(得分:0)

正则表达式应该接近。不幸的是,必须将整个文件内容读取为字符串。

import re

test_str = '''Girl: I am girl.

Boy:

I am boy

Dog: Bark

Cat: 

Meow'''

regex = r':\s*\n+'
subst = ": "

for line in re.sub(regex, subst, test_str, 0, re.MULTILINE).split('\n'):
    if line != '':
        print (line.strip())

输出

Girl: I am girl.
Boy: I am boy
Dog: Bark
Cat: Meow