2

通常はcsv.DictReader、.csv ファイルの最初の行を列ヘッダー、つまり辞書へのキーとして使用します。

If the fieldnames parameter is omitted, the values in the first row of the csvfile will be used as the fieldnames.

ただし、最初の行で次のような問題に直面しています。

#Format: header1 header2 header3...等。

#Format:列ヘッダーではないため、スキップする必要があります。私は次のようなことができます:

column_headers = ['header1', 'header2', 'header3']
reader = csv.dictReader(my_file, delimiter='\t', fieldnames=column_headers)

しかし、2 つの理由から DictReader にこれを処理してもらいたいと思います。

  1. コラムが多い

  2. 列名は時間の経過とともに変更される可能性があり、これは四半期ごとに実行されるプロセスです。

DictReader に最初の行を列ヘッダーとして引き続き使用させる方法はありますが、その最初の#Format:単語をスキップしますか? または、a で始まる単語であれば、#おそらく十分でしょう。

4

1 に答える 1

4

開いているファイルをラップするようDictReaderに、ファイルの最初の行を読み取り、そこからヘッダーを解析し (など)、それらを引数として にheaders = my_file.readline().split(delimiter)[1:]渡すことができます。コンストラクターはファイルをリセットしないため、解析後にヘッダー リストを読み取ることを心配する必要はありません。DictReader()fieldnamesDictReader

于 2013-06-24T18:50:03.710 に答える