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