python 文本操作之文件分析

设计对三国演义的文本文件进行分析,将其中包含成语“足智多谋”的多处的文本前20字到后20个字的文字都进行屏幕输出,并将其存放在一个“足智多谋.txt”文件中。要求每行文本输出和存放文件前,加上该处是第几次出现“足智多谋,以及在原小说中的行号(段落号)。
输出格式参考如下,其中5,表示第5次出现,行号为1001。

img

import tkinter.filedialog as fdg
file_name = fdg.askopenfilename()
with open(file_name, encoding="utf-8") as f:
print(f.read())

如果用上述程序运行的话,该怎么设计呢

import tkinter.filedialog as fdg

file_name = fdg.askopenfilename()

with open(file_name, encoding="utf-8") as f:
    lines = f.readlines()

output_file = open("足智多谋.txt", "w", encoding="utf-8")
count = 0

for i, line in enumerate(lines):
    if "足智多谋" in line:
        count += 1
        start_index = line.index("足智多谋")
        text = line[max(start_index - 20, 0):start_index + 20]
        output = f"第{count}次出现,行号为{i+1},前后共40个字:{text}"
        print(output)
        output_file.write(output + "\n")

output_file.close()