我在下面的代码块中遇到了一些问题。 我尝试做的是逐行浏览文件,然后在包含" .W"的行之后拉出行,直到它到达以"开头的行。 .I"
with open("cran.all.1400","r") as abstracts:
abstract_list = []
for line in abstracts:
if (line.startswith(".W")):
abstract_string = ""
while not (line.startswith('.I')):
abstract_string = abstract_string + line
abstracts.next()
abstract_list.append(abstract_string)
我遇到了StopIteration
,有些谷歌搜索告诉我,当.next()
没有价值时会发生这种情况,但我不确定应该如何编写此代码然后。
我特别不确定的是,如何让while
循环继续通过这些行,并for
循环拾取while
循环离开的位置关闭。
答案 0 :(得分:1)
在for循环中使用标志:
with open("cran.all.1400") as abstracts:
inside = False
abstract_list = []
for line in abstracts:
if line.startswith(".W"):
inside = True
abstract_list.append("")
elif line.startswith(".I"):
inside = False
elif inside:
abstract_list[-1] += line