Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Python

【Python】CSVモジュールを使ったCSVファイルの読み込みと書き込みのサンプルコードを解説

動画で解説を見る



開発環境

  • Python version: python 3.10.11

PythonのCSVモジュールとは

PythonのCSVモジューとルは、CSV(Comma-Separated Values)形式のデータを読み書きするための標準ライブラリです。

CSVは、テキスト形式で表形式のデータを保存するための一般的なフォーマットであり、カンマやタブなどの文字でフィールドを区切ります。

CSVモジュールを使用することで、PythonプログラムでCSVファイルを読み込んだり、CSVファイルにデータを書き込んだりすることができます。

公式ドキュメント:https://docs.python.org/ja/3/library/csv.html

PythonのCSVモジュールの使い方

CSVモジュールには、CSVファイルを処理するための様々な関数やクラスが含まれています。

  • csv.reader(): CSVファイルを読み込んで行ごとに処理するための関数です。
  • csv.writer(): CSVファイルに書き込むための関数です。
  • csv.DictReader(): 辞書形式でCSVファイルを読み込むためのクラスです。
  • csv.DictWriter(): 辞書形式のデータをCSVファイルに書き込むためのクラスです。

これらの関数やクラスを使うことで、CSVファイルの読み込みや書き込みを容易に行うことができます。

PythonのCSVモジュールのサンプルコード

PythonのCSVモジュールのサンプルコードです。

今回は事前に年度別の都道府県の人口推移のCSVファイルを使用しています。

最終的に出力されたCSVファイルはこちらからサンプルをダウンロードです。

CSVファイルの読み込み

まずはCSVファイルの読み込み部分のコードを解説していきます。

まずは、open()関数を使って、prefectures.csvというファイルを読み込みモード ('r') で開いています。

newline=''は、通常の改行コードが使われるように指定し、encoding='utf-8'は、UTF-8エンコーディングを使用してファイルを読み込むことを指定しています。

ファイルを開く際には、with文を使ってコンテキストマネージャを使用しており、これによりファイルが自動的に閉じられるようにしています。

csv.reader()関数を使って、ファイルオブジェクトをCSVファイルを読み込むためのreaderオブジェクトに変換しています。

delimiter=','は、CSVファイルのフィールドを区切る文字を指定しており、ここではカンマが指定されています。

readerオブジェクトを使って、CSVファイルの各行を順に処理し、各行をdateというリストに追加しています。

これにより、CSVファイルの内容がリストとして取得されます。

CSVファイルの書き込み

次にCSVファイルの書き込み部分のコードを解説していきます。

date[0][1:]で最初の行(インデックス0)から、2番目の要素(インデックス1)以降をfile_name_listsというリストに格納しています。

これは、各列のヘッダーとして使われるファイル名のリストを作成しています。

file_name_listsに含まれる各ファイル名に対して、まずはwrite_dateを初期化してCSVファイルに書き込むデータの格納先を設定します。

次にcount += 1でインデックスcountを1つ増やすことにより、現在処理している列のインデックスを更新しています。

その後、for row in dateでdateリストの各行の処理を実行し、write_dateリストに、各行の1番目の要素(インデックス0)とcountで指定された列の要素をリストとして追加します。

これにより、各行の1番目の要素と現在処理している列の要素がペアとして書き込まれます。

date[0][1:]で最初の行(インデックス0)から、2番目の要素(インデックス1)以降をfile_name_listsというリストに格納しています。

これは、各列のヘッダーとして使われるファイル名のリストを作成しています。

open()関数でファイル名を使ってCSVファイルを作成します。

ファイル名ははfile_nameに拡張子.csvを付け加えたもの、ファイルは書き込みモード ('w') で開き、utf-8エンコーディングを使用しています。

csv.writer()関数を使って、ファイルオブジェクトをCSVファイルに書き込むためのwriterオブジェクトに変換します。

delimiter=','は、CSVファイルのフィールドを区切る文字をカンマで指定、writerows()メソッドで各要素をCSVファイルの1行として書き込みます。

まとめ

今回はPythonでCSVモジュールを使ったCSVファイルの操作について解説していきましたが、いかがだったでしょうか。

CSVファイルは様々なツールで使用されているファイル形式なので、pythonで自由に読み込みや書き込みができるようになれば、様々なデータを効率よく処理することができます。

CSVモジュールは非常に便利な標準ライブラリですので、是非、使いこなしていきましょう。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Python