读取行直到出现特定行

时间:2017-06-12 20:04:31

标签: python text-files readline

我有两个测试文件。 File1 - 许多标题,文件2 - 标题和描述。 我需要从文件1中读取一行,即标题,并在文件2中找到匹配的标题并打印描述,直到“END”行 我尝试使用islice和f.next()但不起作用

with open('H:/Python/proj1/p4 faults.swi', 'r') as content_file:
    content = content_file.readlines()

    for x in ViolList:
         for i, line in enumerate(content):
            line =line.upper()
            x1 = x1.upper()

            if x1 in line :
                count = count + 1

                outFile.write(line)
                outFile.write(content_file.next())
                if line.strip()== 'End':
                    break

1 个答案:

答案 0 :(得分:0)

您的代码存在一些问题,包括引用尚未定义的变量x1,以及定义未使用的counti变量。试图让content_file.next()赢得工作,因为您在致电content_file.readlines()时已经阅读了所有内容。

而是做这样的事情:遍历内容;如果一行包含标题,则设置一个标志并将该行写入输出文件;该标志将为True,循环将继续写入行,直到遇到“结束”。

with open('titles', 'r') as titles_file:
    titles = [title.strip().upper() for title in titles_file]

description = False
with open('H:/Python/proj1/p4 faults.swi', 'r') as content, open('outfile.txt') as output:
    for line in content:
        if description:
            output.write(line)
            if line.strip().upper() == "END":
                 description = False
        elif line.strip().upper() in titles:
            output.write(line)
            description = True