Pythonで作業効率化

【Python】CSVファイルの入力と出力を制御する方法

本記事は「PythonでCSVファイルの入力と出力を制御する方法」について説明するものです。

CSVに書き込む方法はいくつかありますが、今回は「csv」ライブラリを使う方法について紹介します。

具体的には以下の4点です。

・PythonでCSVファイルを出力する方法
・PythonでCSVファイルを出力する処理の実装例と実行例
・PythonでCSVファイルからデータを読み込む方法
・PythonでCSVファイルからデータを読み込む処理の実装例と実行例

PythonでCSVファイルを出力する方法

勉強
CSVファイルに書き込む手順は以下の4つです。

・ファイルを開く
・ファイルオブジェクトのデータをCSVファイル形式で読み込む
・CSVファイルに書き込む
・ファイルを閉じる

上記手順をソースコードにすると以下のようになります。

◆ファイル制御に使う関数とメソッド

関数名/メソッド名概要備考
open()ファイルを開く関数第2引数(上記コードでは「mode」)は、「a」または「w」を指定。aを指定した場合はファイルに追記をします。
wを指定した場合は新しいデータでファイルを上書きします。
target_file.close()ファイルを閉じるメソッド
csv.writer()CSV形式にデータを変換するメソッド
dataWriter.writerows()テキストを書き込むメソッド

PythonでCSVファイルを出力する処理の実装例と実行例

CSVファイルに書き込む処理の実装例と実行例について説明します。

◆CSVファイル書き込みメソッドの仕様
ファイルに書き込む処理の仕様は以下の通り。

引数:「ファイルのパス」、「書き込むテキスト」、「モード」
戻り値:成功した場合は「ok」を返す
失敗した場合は「ng」を返す

CSVファイルに書き込むを行うメソッドです。

書き込みに成功した場合は文字列「ok」を失敗した場合は文字列「ng」を返却します。
ファイルを読み書きする方法はいくつかありますが、今回は「csv」というライブラリを使用します。

◆記述内容(csvfilereadwrite.py)
実装する内容は以下の通りです。

◆実行前のtest2.csv

0,あいうえお

◆実行結果

ok

◆実行後のtest2.csv

0,あいうえお
1,かきくけこ
2,さしすせそ

PythonでCSVファイルからデータを読み込む方法

読む
CSVファイルからデータを読み込む手順は以下の4つです。

・ファイルを開く
・ファイルオブジェクトのデータを行数分リストで取得する
・取得したファイルオブジェクトから配列形式でデータを取り出す
・ファイルを閉じる

上記手順をソースコードにすると以下のようになります。

◆ファイル制御に使う関数とメソッド

関数名/メソッド名概要備考
open()ファイルを開く関数
target_file.close()ファイルを閉じるメソッド
csv.reader()CSV形式でファイルを読み込むメソッド

上記コードを実行すると以下のように2次元配列でデータが取得されます。

◆CSVファイルの中身

1,あいうえお
2,かきくけこ
3,さしすせそ

◆実行結果
[['1', 'あいうえお'], ['2', 'かきくけこ'], ['3', 'さしすせそ']]

PythonでCSVファイルからデータを読み込む処理の実装例と実行例

◆CSVファイル読み込みメソッドの仕様
ファイルに読み込む処理は以下の仕様で実装します。

引数:ファイルのパス」
戻り値:読み込んだテキストを返す
失敗した場合は「ng」を返す

ファイルを読み込むにはファイルオブジェクトの「read()」メソッドを使用します。

◆記述内容(csvfilereadwrite.py)

GitHubで見る>>sample-code-python/csv/

◆実行前のtest2.csv

0,あいうえお
1,かきくけこ
2,さしすせそ

◆実行結果

0,あいうえお
1,かきくけこ
2,さしすせそ

以上、CSVファイルを作成・書き込み・読み込みの方法でした。
CSVファイルはプログラミングとも相性の良い形式であるため、扱い方も含めて覚えておきましょう。

Pythonのファイル操作まとめTOP>>Pythonでファイルを操作する方法まとめ

こちらの記事も読まれています

  • この記事を書いた人

みやびの

住んでいるところ:神奈川県。 プログラミング歴は13年ほど。 ※プログラミングに関する無料相談・質問への回答は行っていません。

-Pythonで作業効率化

Copyright© みやびのどっとぴーわい , 2024 All Rights Reserved Powered by AFFINGER5.