PROGRAM PYTHON

Pythonスクリプト【CSVファイルを読み込む】

PythonでCSVファイルを読み込もう

PythonのプログラムでCSV(Comma Separated Values)ファイルを読み込むには、CSVモジュールを使います。

import csv

CSVファイルのオープン自体は、一般的なファイルと同様にopen()関数を使います。

メモ

open()関数の詳しい使い方は、Python公式サイトのドキュメントを参照してください。

CSVファイルをオープンしたら、CSVモジュールのcsv.reader()を使ってオブジェクトを作ります。
このCSVオブジェクトがCSVファイルの読み込みを制御します。

オブジェクト = csv.reader(CSVファイル[, 初期化パラメータ])

csv.readerの初期化パラメータには、以下のような種類があります。

delimiter フィールド間を分割するのに用いられる1文字からなる文字列。デフォルトは,(カンマ)
doublequote クォートではないquotechar文字をどのようにクォートするか。デフォルトはTrueで"(ダブルクォーテーション)で囲む。Falseはescapechaを前に置く
escapechar quotecharをエスケープするための文字。デフォルトはNoneでエスケープはしない
lineterminator csv.writerがファイル作る際の各行の改行コード。デフォルトは「\r\n」
quotechar 改行文字を含むフィールドをクォートする時に使う1文字からなる文字列。デフォルトは"(ダブルクォーテーション)
quoting クォートがいつcsv.writerによって生成されるか、またcsv.readerによって認識されるかを制御。デフォルトはQUOTE_MINIMAL
skipinitialspace Trueの場合、delimiterの直後に続く空白を無視。デフォルトはFalse
strict Trueの場合、不正なCSV入力に対してErrorを送出。デフォルトはFalse

CSVファイルを読み込むプログラム

それでは早速、CSVファイルを読み込む簡単なプログラムを作成しましょう。
読み込むCSVファイルの中身は、以下のようになります。
フィールドをカンマで区切り、それぞれ氏名、国語、数学、英語の点数を表しています。
なお、ファイル名は「file.csv」としています。

サンプルプログラムは、上記のCSVファイルを読み込み、1行ずつ平均点を計算しながら画面に表示します。
8行目のopen()関数の引数に newline='' を付けていますが、これは改行コードの変換を行わないという指定で、CSVファイルを読み込む時は、このオプションが推奨されています。
20行目の row[1:] は、行の先頭カラムからではなく、2番目のカラムから読み取る指定です。
ちなみに3番目のカラムから読み取りたい場合は、row[2:]と記述します。
なお、csv.readerで読み取った要素は、文字列型になりますので、値を計算したい場合は型を数値型に変換する必要があります。

通常のファイル操作に関しては、以下の記事を参照してください。

詳しいCSVモジュールの使い方は、以下の公式ページを参照してください。

-PROGRAM, PYTHON
-