将文件指针移动到Python中已知字符串的行

时间:2013-11-29 14:57:17

标签: pointers python-2.7

我正在读取数据文件,我知道我的数据在包含'[Data]'的行之后开始。 我想搜索文件,直到它到达此行,然后停止,以便我可以开始格式化数据。这是我的尝试:

fid='myData.dat'
f=open(fid,'r')
fline = 'string'
while fline != '[Data]':
    fline=f.readline()
    print fline

但是,它会在不停止的情况下读取文档中的每一行。我知道我想要的行只包含[Data]而没有其他空格或字符。 我确信有更好的方法可以做到这一点,我愿意以任何其他方式解决这个问题。

2 个答案:

答案 0 :(得分:1)

可能'[Data]'之后是'\n',因为它是该行的结尾,因此您可以尝试while fline != '[Data]\n':

如果您使用的是Windows,换行符将为"\r\n",'\ n'适用于基于Unix的系统。

答案 1 :(得分:1)

带有行结尾的readline方法返回行:

while fline != '[Data]\n':
    fline=f.readline()

您可以删除白色字符:

while fline.strip() != '[Data]':
    fline=f.readline()

如果您在“[”之前不想要空格,则只能在.rstrip()的右侧删除它们。您只能使用.rstrip("\r\n")删除换行符。