本記事はPythonでファイルの読み書きができる「codecs」ライブラリについて紹介します。
プログラミングに置いてファイルに書き込みを行うことは主要な処理の一つです。
ファイルの読み書きをすることでデータの一時保存や結果出力ができるようになるのでプログラムの幅が広がります。
本記事の内容は以下の通り。
・「codecs」の使い方〜Pythonでのファイルの読み書き〜
・Python codecsでファイルに書き込む場合の実装例・実行例
・Python codecsでファイルから読み込む場合の実装例・実行例
CSVファイルの読み書きについては「PythonでCSVファイルを出力する」をお読みください。
目次
「codecs」の使い方〜Pythonでのファイルの読み書き〜
ファイルの読み書きができる「codecs」の使い方について紹介します。
「codecs」の基本的な使い方
「codecs」はPythonの標準ライブラリであるため、「import」で読み込むだけで使うことが可能です。
open()関数でファイルを開き、書き込みや読み込みを行います。
処理が終わったらclose()メソッドでファイルを閉じます。
codecsでファイルを書き込む手順
codecsを使用してファイルに書き込みを行う場合は以下の手順です。
・ファイルを開いてファイルオブジェクトを取得(codecs.open())
・ファイルに書き込む(target_file.write())
・ファイルを閉じる(target_file.close())
上記手順をコードにすると以下のようになります。
1 2 3 4 5 6 7 | import codecs text = 'あいうえお' target_file = codecs.open(path, "a", "utf_8") # ファイルに記載する target_file.write(text) # ファイルを閉じる target_file.close() |
codecsに関係する関数・メソッド
関数名/メソッド名 | 概要 | 備考 |
codecs.open() | ファイルを開く関数 | |
target_file.close() | ファイルを閉じるメソッド | |
target_file.write() | ファイルを書き込むメソッド | 第1引数:書き込むファイルのパス 第2引数:引数にはファイルのモード。ファイルには上書きモード(w)、挿入モード(a)、読み込みモード(r)などがあります。 第3引数:文字コードを指定 |
target_file.read() | ファイルを読み込むメソッド |
ファイルからデータを読み込む手順
codecsを使用してファイルからデータを読み込む手順は以下の通りです
・ファイルを開いてファイルオブジェクトを取得(codecs.open())
・ファイルからデータを読み込む(target_file.read())
・ファイルを閉じる(target_file.close())
上記手順をコードにすると以下のようになります。
1 2 3 4 5 6 7 | import codecs # ファイルを開く(読み込みモード、UTF-8) target_file = codecs.open(path, "r", "utf_8") # ファイルを読み込む text = target_file.read() # ファイルを閉じる target_file.close() |
手順は基本的に書き込みと同じですが、ファイルを開くときの引数が異なり、第2引数に「r」を指定します。
Python codecsでファイルに書き込む場合の実装例
ファイルを書き込む処理の実装例・実行例
ファイルに書き込む処理は以下の仕様で実装します。
引数 | 「ファイルのパス」と「書き込むテキスト」 |
---|---|
戻り値 | 成功した場合は「ok」を返す 失敗した場合は「ng」を返す |
◆記述内容(filereadwrite.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 | import codecs # ファイルのリードライトを行うクラス class FileReadWrite: # ファイルを書き込むメソッド def file_write(self, path, text): try: # ファイルを開く(挿入モード、UTF-8) target_file = codecs.open(path, "a", "utf_8") # ファイルに記載する target_file.write(text) result = "ok" # ファイルを閉じる target_file.close() except: # エラーが出た時の例外処理 result = "ng" return result # クラスのテストコード(ファイル書き込み) def main(): c = FileReadWrite() answer = c.file_write("./test1.txt", "かきくけこn") print(answer) if __name__ == "__main__": main() |
◆実行前のtest1.txt
◆実行結果
◆実行後のtest1.txt
かきくけこ
Python codecsでファイルから読み込む場合の実装例・実行例
ファイルからデータを読み込む処理の実装例・実行例
ファイルからデータを読み込む処理は以下の仕様で実装します。
引数 | ファイルのパス |
---|---|
戻り値 | 読み込んだテキストを返す 失敗した場合は「ng」を返す |
成功した場合に読み込んだテキストを返すメソッドです。
失敗した場合はテキストの代わりに文字列「ng」を返します。
◆記述内容(filereadwrite.py)
上のソースコードに追記します。
実装するコードは以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # ファイルを読み込むメソッド def file_read(self, path): try: # ファイルを開く(読み込みモード、UTF-8) target_file = codecs.open(path, "r", "utf_8") # ファイルを読み込む text = target_file.read() # ファイルを閉じる target_file.close() except: # エラーが出た時の例外処理 text = "ng" # ファイルに記述されている文字列を返す return text # クラスのテストコード(ファイル読み込み) def main(): c = FileReadWrite() text = c.file_read("./test1.txt") print(text) |
◆test1.txtの記述内容
◆実行結果
終わりに
今回は「codecs」というライブラリを使用する方法について紹介しました。
「codecs」は標準ライブラリなのでimportするだけで使うことができます。
まずはこのライブラリを活用して簡単なファイルの読み書きを実装してみましょう。
ファイルの読み書きができれば簡易的なデータベースとして活用したり、結果を出力したりといったことが可能となります。
簡単な操作で実装できるので習得しておきましょう。
Pythonのファイル操作まとめTOP>>Pythonでファイルを操作する方法まとめ