在fi中获取下一行

2024-10-01 11:24:02 发布

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

我正在读一个文件,想知道是否有办法读取for循环中的下一行?

我目前正在读这样的文件:

file = open(input,"r").read()
for line in file.splitlines():
  line = doSomething()

那么,我是否可以在for循环中检索文件的下一行,以便在doSomething()函数中执行某些操作?


Tags: 文件函数inforreadinputlineopen
3条回答

我认为你的意思是,如果你在n行,你希望能够访问n+1行。

最简单的方法就是

for line in file.splitlines():

lines = file.readlines()
for i in xrange(len(lines)):

然后您可以使用 lines[i] 获取当前行,使用 lines[i+1]获取下一行

更像Python的方法是使用枚举

lines = file.readlines()
for index, line in enumerate(lines):

现在,您已经将当前行像normal一样放在“line”中,但是如果您希望找到与之相关的另一行,则还可以使用索引。

file = open(input,"r").read()
lines =  file.read().splitlines()
for i in range(len(lines)):
     line = lines[i]
     next_line = lines[i+1]

只需循环打开的文件:

infile = open(input,"r")
for line in infile:
    line = doSomething(line, next(infile))

因为现在将文件用作迭代器,所以可以随时调用infile变量上的^{} function来检索额外的行。

两个额外提示:

  1. 不要调用变量file;它在python中屏蔽了内置的file类型对象。我取名为infile

  2. 可以将打开的文件用作带有with语句的上下文管理器。完成后,它将自动为您关闭文件:

    with open(input,"r") as infile:
        for line in infile:
            line = doSomething(line, next(infile))
    

相关问题 更多 >