如何在 Python 中访问文件(.txt)中的下一行
Posted
技术标签:
【中文标题】如何在 Python 中访问文件(.txt)中的下一行【英文标题】:How to access next line in a file(.txt) in Python 【发布时间】:2013-06-12 21:44:35 【问题描述】:我有一个文件,我打开它,然后我检查了一些东西。如果该行以“E PARAM”开头并且在某处也有“OOPS1”,那么我想检查下一行是否以“E PARAM”开头。如果没有,我将创建一个新文件并将其复制到那里,直到我没有点击另一个“E PARAM”行。由于 Python 没有 next() 选项......这里有什么可以帮助我的
import string
import os
A = "k_trap_cur"
B = open(A, 'r+')
lines = B.readline()
for lines in B:
if lines.startswith("E PRAM"):
if "OOPS: 1" in lines:
while lines.next().startswith("E PARAM") == False: // HERE I want to access next line
print " YES"
【问题讨论】:
用read()
读取文件并用“E PARAM”分割
我的文件是一个有很多行的大文件。在 while 循环中,我想检查下一行是否以 ("E PARAM") 开头。我不必拆分它
在循环中使用 next(B)
或 B.readline()
查看下一行
【参考方案1】:
如果我没听错的话:
b = open(a, 'r+')
for line in b:
if line.startswith("E PRAM") and "OOPS: 1" in line:
next_line = next(b)
# do whatever you need
文件提供了所谓的“迭代器协议”,这就是它们在for
-loops 中工作的原因。如果需要,您也可以手动调用next
函数。详情请查看PEP-234。
【讨论】:
@kirelagin .. 非常感谢您的链接。我试着按照你说的做,但它给了我一个错误。代码:对于 B 中的行:如果行中的 lines.startswith("EchoStar PRAM") 和 "OOPS: 1":next_line = next(B) print next_line Error: next_line = next(B) NameError: name 'next' is not定义 :- 错误:next_line = next(B) NameError: name 'next' is not defined @Nicknext
是在 Python 2.6 中添加的,可能您的版本较旧。那么next_line = next(b)
应该可以工作了。以上是关于如何在 Python 中访问文件(.txt)中的下一行的主要内容,如果未能解决你的问题,请参考以下文章