我有一个文件,我试图每隔四行读取(并写入另一个文件).我正在使用的解决方案没有给出预期的结果.
为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))
Run Code Online (Sandbox Code Playgroud)
现在输出文件给我line1,line5,line9而不是line4,line8.
我将如何改变这一点以获得理想的结果?
你快到了.islice附带一个start参数.在你的情况下,它是你设置的第二个None.试试这个:
fout.writelines(islice(fin,3,None,4)) # line with index 3 is the fourth line
Run Code Online (Sandbox Code Playgroud)