读取两个标记之间的线

时间:2017-10-05 17:18:04

标签: python parsing readfile

如何在两个标记之间一次读取一个文本文件。 例如;

**<Start>** 
code:2010
<Stop>
<Start>
code:2011
code:2013
**<Stop>**

并让它一次打印出一行:

*code:2010
code:2011
code:2013*

我正在使用Python3。我试过看过&#39;&#39;但我想我离开了基地。我也在Windows机器上,并且不相信awk或sed可供我使用。 任何方向都会受到欢迎。谢谢!

2 个答案:

答案 0 :(得分:0)

这样的事情可能适用于你的例子,但老实说我还没有测试过它:

start = 0
textlist = []
with open('myfile') as f:
    for line in f:
        if '<STOP>' in line.upper():
            start = 0
        elif start:
            textlist.append(line)
        elif '<START>' in line.upper():
            start = 1
print(''.join(textlist))

答案 1 :(得分:0)

如果是text / csv,您可以执行以下操作:

import csv
codes = []
with open('myfile.csv', newline='') as f:
     reader=csv.reader(f)
     for line in reader:
           if "code:" in line:
                codes.append([line])


with open('output.csv', 'w', newline='') as f:
     writer = csv.writer(f)
     writer.writerows(codes)