100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python的遍历循环结构可以是文件吗_在python中循环遍历文本文件时出错

python的遍历循环结构可以是文件吗_在python中循环遍历文本文件时出错

时间:2022-04-09 13:00:33

相关推荐

python的遍历循环结构可以是文件吗_在python中循环遍历文本文件时出错

错误的原因是,您滥用文件对象生成器的方式是,两次调用next的频率都比您想的要高.每次对next的调用都会得到一行并返回.因此,虽然’—‘不在next(file)中:fields1 = next(file).split(‘,’)获取一行,检查它是否为—,然后获取另一行并尝试对其进行解析.这意味着您可以跳过包含—的行,方法是在第二行中出现它.在这种情况下,您将找到文件的末尾,然后再找到要查找的行. StopIteration是迭代器通常如何指示其输入已用尽的方式.

您可能还需要在代码中解决几个其他问题:

>如果您已经在for循环中,则在文件之类的生成器上使用next可能会导致未定义的行为.这次您可能会摆脱它,但这通常不是一个好习惯.顺便说一句,您之所以无法使用它的主要原因是,您可能永远不会在触发while时真正将控制返回到for循环,而不是在这方面文件不是特别允许的.

>内部结构将您的数据转储到文件中,同时位于while循环内部.这意味着您使用“ w”权限打开的文件将在while的每次迭代(即文件中的每一行)都被截断.随着数组的增长,输出实际上会看起来很好,但是您可能希望将其移出内部循环.

最简单的解决方案是在两个循环中重写代码:一个循环找到您关心的零件的开始,另一个循环处理直到找到结束.

像这样:

test_arr = []

with open(fileName, ) as file:

for line in file:

if line.startswith(---) and section1 in line:

break

for line in file:

if --- in line:

break

fields1 = line.split(,)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。