在Python csv中跳过多行

Fas*_*ous 9 python csv

我正在连接到一个API以阻止一些数据.输出是一个报告,其中包含一个多行标题以及传统的单行标题.

例:

1. Document Name: Test
2. Document Date: 8/7/2015
3. Document ID: 3804804
4. Document Author: Joe Blow
5.
6. Date, ID, Name, Age, Sex, Result
7. 8/7/2015, 2808380, Sara Jenkings, 33, F, 208.20
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我想跳过第1-5行,并将第6行的行写为标题行,将其后的所有其他行写为普通行.

现在,我知道如何跳过下一行(阅读器,无),但如果我知道要跳过的行数将始终为5行,如何跳过多行?

任何帮助深表感谢.我通常会使用数据库来跳过这些行,但我想看看我是否可以让Python正确保存数据而不需要数据库做更多工作.

Pad*_*ham 12

您可以使用itertools.islice,将要开始写入的行作为第二个参数传递,以便第6行基于您使用0 5,如果stop为None,则迭代继续,直到迭代器耗尽为止

import  csv

from itertools import islice

with open("in.csv") as f, open("out.csv","w") as out:
    r = csv.reader(islice(f, start=5,stop=None))
    wr = csv.writer(out)
    wr.writerows(r)
Run Code Online (Sandbox Code Playgroud)

如果要按原样保留行,则不一定需要csv模块:

with open("in.csv") as f, open("out.csv","w") as out:
    r = islice(f, 5 ,None)
    out.writelines(r)
Run Code Online (Sandbox Code Playgroud)