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


