我想在文本文件的第一个空行开始解析文本文件。每个文本文件的前几行都有我不希望在搜索中使用的 URL,并且每个文件的长度标题略有不同。每个文件在标题和正文之间都有一个空行,所以我想在空行之后开始我的正则表达式搜索
我知道如何找到空行,但不知道如何获取它们的索引。
myfile = open(mydir,'r')
for line in myfile:
if line in ['\n', '\r\n']:
print 'Found it'
任何帮助表示赞赏
我想在文本文件的第一个空行开始解析文本文件。每个文本文件的前几行都有我不希望在搜索中使用的 URL,并且每个文件的长度标题略有不同。每个文件在标题和正文之间都有一个空行,所以我想在空行之后开始我的正则表达式搜索
我知道如何找到空行,但不知道如何获取它们的索引。
myfile = open(mydir,'r')
for line in myfile:
if line in ['\n', '\r\n']:
print 'Found it'
任何帮助表示赞赏
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
只需单步执行文件,忽略所有内容,直到找到空行。然后处理其余部分。
myfile = open(mydir,'r')
for line in myfile:
if line in ['\n', '\r\n']:
break
for line in myfile:
#dostuff
我知道如何找到空行,但不知道如何获取它们的索引。
你还没有说为什么需要索引,我不认为你这样做。但是假设您(或其他阅读此问题的人)确实需要索引,那么您可以使用内置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):
为什么不从“找到它”的正则表达式开始,而不用担心行号?
myfile = open(mydir,'r')
for index,line in enumerate(myfile):
if line in ['\n', '\r\n']:
print 'Found it'
>>> 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),