阅读Python中的每四行

时间:2015-02-23 15:44:05

标签: 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))

现在输出文件给出了line1,line5,line9而不是line4,line8。

我将如何改变这一点以获得理想的结果?

3 个答案:

答案 0 :(得分:7)

你快到了。 islice附带start参数。在您的情况下,它是第二个,您已设置为None。试试这个:

fout.writelines(islice(fin,3,None,4)) # line with index 3 is the fourth line

答案 1 :(得分:0)

试试这个

islice(fin,3,None,4) # start from 4

答案 2 :(得分:0)

这也可以通过默认列表切片(没有itertools)来完成:

#!/usr/bin/env python2
with open('sample.txt') as fin, open('output.txt', 'w') as fout:
fout.write(''.join(fin.readlines()[3::4]))