我想开始在文本文件的第一个空行解析文本文件。每个文本文件的前几行都有我在搜索中不需要的URL,每个文件的长度标题略有不同。每个文件在标题和正文之间都有一个空行,所以我想在空行后开始我的正则表达式搜索
我知道如何找到空行,但无法弄清楚如何获取它们的索引。
myfile = open(mydir,'r')
for line in myfile:
if line in ['\n', '\r\n']:
print 'Found it'
任何帮助表示赞赏
答案 0 :(得分:3)
只需单击文件忽略所有内容,直到找到空行。然后处理其余部分。
myfile = open(mydir,'r')
for line in myfile:
if line in ['\n', '\r\n']:
break
for line in myfile:
#dostuff
答案 1 :(得分:2)
我知道如何找到空行,但无法弄清楚如何获取它们的索引。
你还没有说为什么需要索引,我不认为你这样做。但假设您(或其他人正在阅读此问题) 确实需要索引,那么您可以使用内置的enumerate
函数:
for i, line in enumerate(myfile):
if line in ['\n', '\r\n']:
print 'Found it!', i
请注意,如果您想要行号而不是索引,那么您通常希望从1而不是0开始。为此,请更改第一行对此:
for i, line in enumerate(myfile, 1):
答案 2 :(得分:2)
with open(mydir,'r') as myfile
next(line for line in myfile if line.isspace())
# now myfile is at the first line after the blank line
答案 3 :(得分:1)
为什么不从你的“找到它”的正则表达式开始,而不用担心行号?
答案 4 :(得分:0)
myfile = open(mydir,'r')
for index,line in enumerate(myfile):
if line in ['\n', '\r\n']:
print 'Found it'
答案 5 :(得分:0)
>>> from itertools import dropwhile
>>> from operator import truth
>>> from itertools import islice
>>> with open('test.z') as f:
... gen = dropwhile(lambda x: not(x == '\n' or x == '\r\n'), f)
... gen = islice(gen, 1, None)
... for line in gen:
... print(line),