StopIteration 由使用嵌套循环的文件迭代给出
StopIteration given by a file iteration that uses nested loops
我在使用以下代码块时遇到一些问题。
我想要做的是逐行浏览一个文件,然后拉出包含“.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
循环离开的地方开始关闭。
在 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
我在使用以下代码块时遇到一些问题。 我想要做的是逐行浏览一个文件,然后拉出包含“.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
循环离开的地方开始关闭。
在 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