本記事は「PythonでCSVファイルの入力と出力を制御する方法」について説明するものです。
CSVに書き込む方法はいくつかありますが、今回は「csv」ライブラリを使う方法について紹介します。
具体的には以下の4点です。
・PythonでCSVファイルを出力する方法
・PythonでCSVファイルを出力する処理の実装例と実行例
・PythonでCSVファイルからデータを読み込む方法
・PythonでCSVファイルからデータを読み込む処理の実装例と実行例
目次
PythonでCSVファイルを出力する方法
・ファイルを開く
・ファイルオブジェクトのデータをCSVファイル形式で読み込む
・CSVファイルに書き込む
・ファイルを閉じる
上記手順をソースコードにすると以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import csv text = [["あいうえお"]] #書き込む文字列 path = './test.csv' # 書き込むファイルのパス mode = 'w' # ファイルを開く target_file = open(path, mode, encoding="utf_8") # ファイルオブジェクトのデータをCSVファイル形式で読み込む dataWriter = csv.writer(target_file, lineterminator='n') # CSVファイルに書き込む dataWriter.writerows(text) # ファイルを閉じる target_file.close() |
◆ファイル制御に使う関数とメソッド
関数名/メソッド名 | 概要 | 備考 |
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)
実装する内容は以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import csv # ファイルのリードライトを行うクラス class CsvFileReadWrite: # ファイルを書き込むメソッド def csv_write(self, path, text, mode="w"): try: # ファイルを開く target_file = open(path, mode, encoding="utf_8") # ファイルオブジェクトのデータをCSVファイル形式で読み込む dataWriter = csv.writer(target_file, lineterminator='n') # CSVファイルに書き込む dataWriter.writerows(text) result = "ok" # ファイルを閉じる target_file.close() except: result = "ng" return result # クラスのテストコード(CSVファイル書き込み) def main(): c = CsvFileReadWrite() # 入力データを作成 texts = [[1,"かきくけこ"],[2,"さしすせそ"]] # 追記モードでコールする answer = c.csv_write("./test2.csv", texts, "a") print(answer) if __name__ == "__main__": main() |
◆実行前のtest2.csv
◆実行結果
◆実行後のtest2.csv
1,かきくけこ
2,さしすせそ
PythonでCSVファイルからデータを読み込む方法
・ファイルを開く
・ファイルオブジェクトのデータを行数分リストで取得する
・取得したファイルオブジェクトから配列形式でデータを取り出す
・ファイルを閉じる
上記手順をソースコードにすると以下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import csv path = 'sample/test.csv' # 読み込むファイルのパス # ファイルを開く target_file = open(path, encoding="utf_8") # ファイルオブジェクトのデータを行数分リストで取得する text_lines = csv.reader(target_file) # 取得したファイルオブジェクトから配列形式でデータを取り出す texts = list(text_lines) # ファイルを閉じる target_file.close() print(texts) |
◆ファイル制御に使う関数とメソッド
関数名/メソッド名 | 概要 | 備考 |
open() | ファイルを開く関数 | |
target_file.close() | ファイルを閉じるメソッド | |
csv.reader() | CSV形式でファイルを読み込むメソッド |
上記コードを実行すると以下のように2次元配列でデータが取得されます。
◆CSVファイルの中身
1,あいうえお
2,かきくけこ
3,さしすせそ
◆実行結果
[['1', 'あいうえお'], ['2', 'かきくけこ'], ['3', 'さしすせそ']]
PythonでCSVファイルからデータを読み込む処理の実装例と実行例
◆CSVファイル読み込みメソッドの仕様
ファイルに読み込む処理は以下の仕様で実装します。
引数: | ファイルのパス」 |
---|---|
戻り値: | 読み込んだテキストを返す 失敗した場合は「ng」を返す |
ファイルを読み込むにはファイルオブジェクトの「read()」メソッドを使用します。
◆記述内容(csvfilereadwrite.py)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | import csv # ファイルのリードライトを行うクラス class CsvFileReadWrite: def csv_read(self, path): try: # ファイルを開く target_file = open(path, encoding="utf_8") # ファイルオブジェクトのデータを行数分リストで取得する text_lines = csv.reader(target_file) # 取得したファイルオブジェクトから配列形式でデータを取り出す texts = list(text_lines) # ファイルを閉じる target_file.close() except: texts = "ng" return texts # クラスのテストコード(CSVファイル読み込み) def main(): c = CsvFileReadWrite() texts = c.csv_read("./test2.csv") print(texts) |
GitHubで見る>>sample-code-python/csv/
◆実行前のtest2.csv
1,かきくけこ
2,さしすせそ
◆実行結果
1,かきくけこ
2,さしすせそ
以上、CSVファイルを作成・書き込み・読み込みの方法でした。
CSVファイルはプログラミングとも相性の良い形式であるため、扱い方も含めて覚えておきましょう。
Pythonのファイル操作まとめTOP>>Pythonでファイルを操作する方法まとめ