2012-03-26 12 views
2

csvファイルの列見出しを確認する必要があります。現在、私はDictReaderとフィールド名を使って列ヘッダーを取得しています。主に、このメソッドを使用して何が起こっているかについてコードがはっきりと分かっているからです。標準のcsvリーダーを使用し、一番上の列をヘッダーとして読み取ってファイルを閉じるなどの理由(パフォーマンスなど)はありますか?DictReaderのフィールド名とvs csvリーダーの最初の行

答えて

7

私はDictReaderがcsvリーダーよりもわずかに効率が悪いと思うでしょう(私はベンチマークは見たことがありません)。 DictReaderが提供するものは、読みやすさが向上しています。あなたのコードを読んで誰もがあなたが列をCSVリーダーの単なる数値インデックスではなく

reader = csv.DictReader(f.open) 
for line_dict in reader: 
    line_dict['First Column'] 
    line_dict['Second Column'] 

にアクセスしたときに何が起こっているかを見ることができます。多数の列を持つファイルを扱っている場合、列名の索引を覚えておく必要があります。私は可読性のためにDictReaderが勝つと思う。

+2

これはコードがより弾力的であることを示します。誰かがCSVファイルを再注文した場合(たとえば、中央に新しい列が追加された場合など)、コードが破られることはありません。 – aravenel

+0

DictReaderを入力フィールド名なしで使用すると、DictReader._fieldnamesは最初のデータ行を読み取った後にのみ使用できます。だからそれはマイナスです。 –

関連する問題