注册 登录
编程论坛 Python论坛

新人求助:请问如何通过python脚本实现在一个文本中查找关键字,然后保存关键字上下三行的内容到另一个文本中?

wass99 发布于 2020-11-15 23:40, 1396 次点击
如题,以下简单代码基本实现了在txt1.txt文本中查找关键字(关键字保存的文档keywords.txt),然后保存有关键字那行的内容到result.txt中,现在只能保存一行内容,请问如何能够实现保存关键字上下三行的内容到result.txt中?
烦请指教,非常感谢!!
with open(r'd:\test\keywords.txt', 'r') as f1, open('d:\test\txt1.txt', 'r') as f2, open('d:\test\result.txt', 'w') as f3:
    for i in f1:
        keyword = i.strip('\n')
        f2.seek(0)
        for line in f2:
            if keyword in line:
                f3.write(line + '\n')
2 回复
#2
fall_bernana2020-11-16 10:30
以下是引用wass99在2020-11-15 23:40:25的发言:

如题,以下简单代码基本实现了在txt1.txt文本中查找关键字(关键字保存的文档keywords.txt),然后保存有关键字那行的内容到result.txt中,现在只能保存一行内容,请问如何能够实现保存关键字上下三行的内容到result.txt中?
烦请指教,非常感谢!!
with open(r'd:\test\keywords.txt', 'r') as f1, open('d:\test\txt1.txt', 'r') as f2, open('d:\test\result.txt', 'w') as f3:
    for i in f1:
        keyword = i.strip('\n')
        f2.seek(0)
        for line in f2:
            if keyword in line:
                f3.write(line + '\n')


程序代码:

data=["","",""]
keywords={}
with open(r'keywords.txt', 'r') as f1, open('txt1.txt', 'r') as f2, open('result.txt', 'w') as f3:
    #先处理keywords.txt,存入keywords字典里
    for i in f1:
        keyword = i.strip('\n')
        data[0]=data[1]
        data[1]=data[2]
        data[2]=keyword
        keywords[data[1]]=' '.join(data)
        keywords[data[2]]=data[1]+' '+data[2]+' '+''#如果是keywords.txt的最后一行在keywords里也能有值
    for line in f2:
        if line in keywords:
            f3.write(keywords[line] + '\n')
#3
sssooosss2020-11-19 08:35
共同学习
1