在文本文件中的多个关键字之前插入新行

时间:2015-06-19 14:01:43

标签: python python-2.7

我有以下文字:

"这就是问题所在。从本文档中提取一些数据。 文字是我正在寻找的。并没有真正发生"

我可以在多个关键字之后插入一个新行:

import fileinput
for line in fileinput.input('text.txt', inplace=1):
    print line,
    if line.startswith(('Extract',  'Text')):
        print ' '

但我找不到在关键字之前添加换行符的解决方案。

最终格式应如下所示:

"这就是问题所在。

从本文档中提取一些数据。

文字正是我要找的。并没有真正发生"

问题在于所有单词都可以更改但关键字。我正在寻找编辑包含关键字的任何文本。

感谢您的建议。

2 个答案:

答案 0 :(得分:0)

你的意思是:

import fileinput
for line in fileinput.input('text.txt', inplace=1):
    if line.startswith(('Extract',  'Text')):
        print '\n'+line+'\n'    
    else:    
        print line

答案 1 :(得分:0)

正则表达式子函数可以得到你想要的东西:

import re
keywords_regex = r"(Extract )|(Text )"
line = re.sub(keywords_regex, "\n\1", line) + "\n"

但首先,您必须将输入文本拆分为各自的句子。你可以这样做:

import re
lines = text.split(". ")

# replace the removed periods
lines = [line + "." for line in lines]

keywords_regex = r"(Extract )|(Text )"
lines = [re.sub(keywords_regex, "\n\1", line) + "\n" for line in lines]

" \ 1"是正则表达式的简写"第一个匹配的组。"