Python中简单“readlines”操作的索引超出范围

2024-04-23 19:42:41 发布

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

基本上我试着读最后几行。我很困惑是什么导致了这个错误:

nrows = 10
with open(filename, "r") as f:
    for ii in xrange(-nrows, 0, 1):
        last_line = f.readlines()[ii].strip().split(",")

当我在IDE中尝试时,如果只使用数字就没有问题了,比如:

^{pr2}$

不知何故,xrange生成的索引似乎不能“使用”。有办法吗?在

非常感谢您的关注和时间!在


Tags: inforas错误withlineopenfilename
1条回答
网友
1楼 · 发布于 2024-04-23 19:42:41

它在第二个示例中起作用的原因是只调用readlines()一次。在

您只能读取一次文件,因此一旦您读取了所有行,文件迭代器将指向EOF并返回空列表,这将使您的[ii]尝试失败。在

要多次读取文件,必须调用文件.seek(0)在每一轮之后,将迭代器再次移动到开始处,但将行读入变量将更有效。在

您可能对file like objects感兴趣,也可能考虑使用slice而不是xrange

相关问题 更多 >