输出单词前后的字符,然后写入文件



我试图让这段代码找到一个特定单词之前的 30 个单词和之后的 30 个单词。 然后我希望它将我的输出写入新文件。 我似乎无法弄清楚我做错了什么,因为我对 Python 很陌生。 欢迎任何建议。

def extract_text(file_name, to_find):
file_in = open('School.txt', 'r')
all_lines = file_in.readlines()
file_in.close()
new_text = all_text.replace ('n',  '|')
width = 30

to_find = 'boy'
new_text = all_text.replace ('n',  '|')
while new_text.find(to_find) != -1:
start = all_text.find(to_find)
begin = start - width
end = start + len(to_find) + width

print(new_text[begin:end])
out_put = new_text[begin:end]
f = open("School_boy.txt","w")
f.write(out_put)
f.close()

对于文本解析,我建议使用正则表达式:

import re
# Read the File
with open("file.txt", "r") as file:
text = file.read()
# replace newline with blank
text.replace('n', '')
# parse the text
result = re.findall(r'(?P<before>w+ ){30}target(P?<after>w+ ){30}', text)

从那里开始,前面的所有 30 个单词都在一个名为"之前"的组中,之后的所有 30 个单词都在一个名为"之后"目标单词的组中——在这个例子中是"目标"。正则表达式可以是真正特定的,也可以是非常通用的,具体取决于所使用的模式。例如,上面的代码只允许单词后有一个空格,不允许标点符号。有关python正则表达式的指南:https://docs.python.org/3/howto/regex.html

相关内容

最新更新