如何在Python中找到光标的行号?

5 投票
3 回答
1345 浏览
提问于 2025-04-16 18:00

我正在用Python读取一个文件。在我读了很多行之后,有没有什么方便的函数可以让我知道当前光标在文件的第几行呢?

我想避免使用计数器,因为我有多个函数会读取同一个文件,光标可能会到处移动。

谢谢!

3 个回答

0

你可能需要单独记录这个信息,和你的文件一起保存。你可以把文件对象包装一下,加入一个计数器。Python 只会记录你在文件中读取了多少字节,并没有办法根据行号来移动。

补充:我之前说错了。S.Lott 提出的 fileinput 的建议非常好。

1

类似于enumerate这个东西吗?其实这里并没有真正的“光标”,不过下面的代码可以在逐行读取文件时告诉你当前的行号。

for i, line in enumerate(file):
    print i, line
6

你可以使用 fileinput 这个工具逐行处理文件:

import fileinput
for line in fileinput.input(encoding="utf-8"):
   process(line)

撰写回答