在Python中读取每第四行
问题描述:
我有一个文件,我试图读取(并写入另一个文件)每四行。我正在使用的解决方案没有给出预期的结果。在Python中读取每第四行
sample.txt的 line1 line2 line3 line4 line5 line6 line7 line8 line9 line10
script.py
from itertools import islice
with open('sample.txt') as fin, open('output.txt','w') as fout:
fout.writelines(islice(fin,None,None,4))
现在输出文件给我行1,LINE5,line9而不是4号线,line8。
我会如何改变这种情况以获得理想的结果?
答
试试这个
islice(fin,3,None,4) # start from 4
答
这也可以通过默认列表切片做(不itertools
):
#!/usr/bin/env python2
with open('sample.txt') as fin, open('output.txt', 'w') as fout:
fout.write(''.join(fin.readlines()[3::4]))
出色的使用'islice' – 2015-02-23 15:49:21
你最终会将空白行添加到文件中,以便稍后您可能想要了解哪些情况会成为问题。 – 2015-02-23 15:50:10