1. ホーム
  2. python

[解決済み] Python: csv.DictReader の # でマークされたコメント行を読み飛ばす

2023-07-14 19:49:47

質問

CSVファイルを csv.DictReader は素晴らしいのですが、例えばコメント行(行頭にハッシュで示される)のある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モジュール はそのような行をスキップする方法を含んでいません。 .

をラップするいい方法があると思うのですが。 csv.DictReader を他のイテレータオブジェクトで囲み、行を破棄する前処理を行う良い方法があると想像しています。

どのように解決するのか?

実はこれは filter :

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