Pythonでcsv読み書きする方法(ヘッダーのみ、ヘッダー読み飛ばし等)
Pythonでcsv読み書きする方法(ヘッダーのみ、ヘッダー読み飛ばし等)をご紹介します。
条件
- Python 3.7.0
 
前提
読み込むcsvファイル
以下のようなcsvのデータを読み込むことを想定します。
- sample.csv
 
header1,header2,header3 data11,data12,data13 data21,data22,data23
サンプルソース
ポイントは以下の通りです。
- ヘッダーのみの読み込み
- .__next__()を使用します。
 
 - ヘッダーの読み飛ばし
- next()を使用します。
 
 - csv出力
- .writerow()でリストを指定します。
 
 
import csv
def import_csv():
    print('== ヘッダーのみの読み込み ==')
    with open('sample.csv', 'r') as f:
        reader = csv.reader(f)
        header = reader.__next__()  # ヘッダーの読み込み
        print(header)
    print('== ヘッダー以外の読み込み ==')
    with open('sample.csv', 'r') as f:
        reader = csv.reader(f)
        header = next(reader)  # ヘッダーを読み飛ばす
        for row in reader:
            print(row)
def export_csv():
    out_list = []
    for num in range(5):
        out_list.append(num)
    with open('out.csv', 'w') as f:
        writer = csv.writer(f, lineterminator='\n')  # 改行コード(\n)を指定
        writer.writerow(out_list)
def main():
    """
    実処理(main)
    """
    try:
        import_csv()  # csv読み込み
    except FileNotFoundError as e:
        print('エラーです。' + str(e))
    export_csv()  # csv出力
if __name__ == '__main__':
    """
    main関数を実行
    """
    main()
実行結果
== ヘッダーのみの読み込み == ['header1', 'header2', 'header3'] == ヘッダー以外の読み込み == ['data11', 'data12', 'data13'] ['data21', 'data22', 'data23']
出力されたファイルの内容(out.csv)
0,1,2,3,4
参考
Python公式ドキュメント:CSVファイルの読み書き
https://docs.python.org/ja/3/library/csv.html


