我正在读一个文件,想知道是否有办法在 for 循环中读取下一行?
我目前正在阅读这样的文件:
file = open(input,"r").read()
for line in file.splitlines():
line = doSomething()
那么无论如何我可以在那个for循环中检索文件的下一行,以便我可以在doSomething()
函数中执行一些操作吗?
只需循环打开文件:
infile = open(input,"r")
for line in infile:
line = doSomething(line, next(infile))
因为您现在将文件用作迭代器,所以您可以随时调用变量上的函数next()
来infile
检索额外的行。
两个额外的提示:
不要调用你的变量file
;它掩盖了python中的内置file
类型对象。infile
我改为命名它。
您可以将打开的文件用作with
语句的上下文管理器。完成后它会自动为您关闭文件:
with open(input,"r") as infile:
for line in infile:
line = doSomething(line, next(infile))
file = open(input,"r").read()
lines = file.read().splitlines()
for i in range(len(lines)):
line = lines[i]
next_line = lines[i+1]
我认为您的意思是,如果您在第 n 行,您希望能够访问第 n+1 行。
最简单的方法是更换
for line in file.splitlines():
和
lines = file.readlines()
for i in xrange(len(lines)):
然后你可以得到当前行 lines[i]
和下一行 lines[i+1]
更pythonic的方法是使用枚举
lines = file.readlines()
for index, line in enumerate(lines):
现在您像正常一样在“行”中拥有当前行,但如果您想找到与其相关的不同行,您也拥有索引。