Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中特定行之间的读取_Python - Fatal编程技术网

Python中特定行之间的读取

Python中特定行之间的读取,python,Python,我有一个以下格式的文本文件: ...text LINE A text text text LINE B text... for line in text_file: if line.startswith("LINE A"): Do something until LINE B 我想做的只是处理A行和B行之间的文本 基本上,我正在尝试以下格式: ...text LINE A text text text LINE B text... for line in te

我有一个以下格式的文本文件:

...text
LINE A
text
text
text
LINE B
text...
for line in text_file:
     if line.startswith("LINE A"):
          Do something until LINE B
我想做的只是处理A行和B行之间的文本

基本上,我正在尝试以下格式:

...text
LINE A
text
text
text
LINE B
text...
for line in text_file:
     if line.startswith("LINE A"):
          Do something until LINE B
我不关心它的行号,因为行A可以任意放置在文本文件中,而行A和行B之间的文本长度可变

任何提示或指点都会很棒


谢谢

使用状态机。在这种情况下,我使用状态
reading
not reading
。由于只有两个状态,我可以使用一个布尔值来切换状态

reading=False
for line in text_file:
    if line.startswith("LINE A"):
        reading=True
    elif line.startswith("LINE B"):
        reading=False
    elif reading:
        Do something

看来你的想法是对的。您可以只添加而不添加行。startswith(“行B”):如果您这样做,那么在案例2中也可以添加
break
。如果“B行”在第5行,则无需一直循环到第100行。:)这真聪明!我还没有试过,但我认为这对我来说会很有效。谢谢我一试就会告诉你最新情况。还有@2位炼金术士,非常好!谢谢@两位炼金术士:这是真的,除非你想捕获多个区块。@codycrossley:如果你喜欢答案,请投票并接受。@Dakkaron,我正等着先试试。我就这么做了,而且效果很好!非常感谢你!我会尽快接受答案(从现在起3分钟,直到我能接受为止)