用Python每四行读一次

用Python每四行读一次,python,Python,我有一个文件,我试图读(和写到另一个文件)每四行。我使用的解决方案没有给出期望的结果 sample.txt 第1行 第2行 第3行 第4行 第5行 第6行 第7行 第8行 第9行 第10行 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))

我有一个文件,我试图读(和写到另一个文件)每四行。我使用的解决方案没有给出期望的结果

sample.txt

第1行
第2行
第3行
第4行
第5行
第6行
第7行
第8行
第9行
第10行

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行、第5行、第9行,而不是第4行、第8行

我该如何改变这一点以获得期望的结果?

你就快到了。带有一个
start
参数。在您的例子中,它是第二个,您已设置为
None
。试试这个:

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

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

这也可以通过默认列表切片来完成(不使用
itertools
):


出色地使用
islice
您将在文件中添加一个空行,因此您可能希望在以后发现问题的情况。啊,太完美了。就这样。看起来我很接近。非常感谢你!
#!/usr/bin/env python2
with open('sample.txt') as fin, open('output.txt', 'w') as fout:
fout.write(''.join(fin.readlines()[3::4]))