用csv.DictReader处理CSV文件很好-但是我有带注释行的CSV文件(在行的开头用散列表示),例如:
# step size=1.61853 val0,val1,val2,hybridisation,temp,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 # adaptation finished
csv模块doesn't include any way to skip such lines。
我可以很容易地做一些老生常谈的事情,但我想有一个很好的方法可以将csv.DicReader包装在其他迭代器对象上,然后对其进行预处理以丢弃行。
实际上,这与
filter
很好地配合:另一种读取CSV文件的方法是使用
pandas
下面是一个示例代码:
对于此csv文件:
我们将得到这个输出:
一个好问题,一个很好的例子说明了Python的CSV库缺乏重要的功能,比如处理基本注释(在CSV文件的顶部并不少见)。虽然Dan Stowell的解决方案适用于OP的特定情况,但它的局限性在于
#
必须作为第一个符号出现。更通用的解决方案是:例如,以下
dummy.csv
文件:回报
当然,这对于
csv.DictReader()
也同样有效。相关问题 更多 >
编程相关推荐