Python:在csv.DictReader中跳过标有#的注释行

使用csv.DictReader处理CSV文件非常好 – 但是我有CSV文件的注释行(在一行的开头用散列表示),例如:

 #步长= 1.61853
 val0,VAL1,VAL2,杂交,温度,smattr
 0.206895,0.797923,0.202077,0.631199,0.368801,0.311052,0.688948,0.597237,0.402763
 -169.32,1,1.61853,2.04069e-92,1,0.000906546,0.999093,0.241356,0.758644,0.202382
 #适应完了

csv模块不包含任何跳过这些行的方法 。

我可以很容易地做一些黑客行为,但是我想有一个很好的方法可以将csv.DicReader包装在其他一些迭代器对象的周围,这些对象会预处理以放弃行。

其实这与filter很好地工作:

 import csv fp = open('samples.csv') rdr = csv.DictReader(filter(lambda row: row[0]!='#', fp)) for row in rdr: print(row) fp.close()