如何解决这些迭代和读取方法的错误?

2024-10-17 06:15:16 发布

您现在位置:Python中文网/ 问答频道 /正文

for text in Horizontal_File:
    if text.find("THETA    PHI")!=-1:
    valueoftext = Horizontal_File.readline()
    SplitValue=valueoftext.split()
    phi_List_Horizontal.append(SplitValue[1])
    RCS_List_Horizontal.append(SplitValue[6])

它给我带来的错误是“ValueError:混合迭代和读取方法会丢失数据”


Tags: textinforreadlineiffindlistfile
1条回答
网友
1楼 · 发布于 2024-10-17 06:15:16
for text in Horizontal_File:

每次循环迭代都会获取下一行文件

readline()还为每个调用获取文件中的下一行(本例中为同一行)

  1. 因此文本将有文件的第1行

  2. 如果在文本中找到要搜索的内容,valueoftext将在文件的第2行

  3. 循环的下一个调用将得到第#3行,循环的开始部分将永远看不到第#2行

Python认为这是一个错误,因为通常您希望for循环获取所有行,而您编写的通常是一个错误

如果事实并非如此,那么您必须制定一个变通方法,以便python理解您的真正意思。在Python2中可以使用valueoftext=Horizontal\u File.next(),在Python3中可以使用valueoftext=next(Horizontal\u File)。但是,您应该确保在尝试获取下一行时未到达文件的末尾,否则将收到StopIteration异常

相关问题 更多 >