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()