Mar*_*ers 33
只需循环打开文件:
infile = open(input,"r")
for line in infile:
line = doSomething(line, next(infile))
Run Code Online (Sandbox Code Playgroud)
因为您现在使用该文件作为迭代器,所以您可以随时调用该变量上的next()函数infile来检索额外的行.
两个额外提示:
不要打电话给你的变量file; 它掩盖了filepython中的内置类型对象.我infile改为命名了.
您可以将打开的文件用作with语句的上下文管理器.完成后它会自动为您关闭文件:
with open(input,"r") as infile:
for line in infile:
line = doSomething(line, next(infile))
Run Code Online (Sandbox Code Playgroud)file = open(input,"r").read()
lines = file.read().splitlines()
for i in range(len(lines)):
line = lines[i]
next_line = lines[i+1]
Run Code Online (Sandbox Code Playgroud)
我想你的意思是,如果你在第n行,你希望能够访问第n + 1行.
最简单的方法是更换
for line in file.splitlines():
同
lines = file.readlines()
for i in xrange(len(lines)):
Run Code Online (Sandbox Code Playgroud)
然后你可以得到当前行 lines[i] 和下一行 lines[i+1]
更加pythonic的方式是使用枚举
lines = file.readlines()
for index, line in enumerate(lines):
Run Code Online (Sandbox Code Playgroud)
现在你在"line"中有正常的当前行,但如果你想找到一个相对于它的不同行,你也有索引.