我是python的新手。我需要读取前11行然后跳过接下来的9行并读取2行,跳过接下来的9行并读取2行直到文件结尾。
我感谢任何帮助。
答案 0 :(得分:1)
这里有一般的想法:
1.使用readlines()读取文件中的行到列表中
2.使用for循环遍历行的索引
3.在循环中使用if语句跳过相应的行。
MattDMo是正确的。如果您向我们展示您的尝试,它会有所帮助。
答案 1 :(得分:1)
您可以使用islice()
模块中的itertools
通过generator函数从文件中读取“切片”:
import itertools
def lines_of_interest(filename):
with open(filename, 'r') as inf:
for line in itertools.islice(inf, 11): # yield the first 11 lines
yield line
while True:
# out of next 11 lines, skip 9 and keep last 2
lines = list(itertools.islice(inf, 9, 11))
for line in lines:
yield line
if not lines: # end-of-file?
break
用法示例:
# create a test file
with open('data.dat', 'w') as outf:
for i in xrange(1, 110):
outf.write('line #%d\n' % i)
for line in lines_of_interest('data.dat'):
# process line...
print line,