Python | open()関数でファイルの読み書き

2023-02-26Python ファイル・ディレクトリ,Python

Python | open()関数でファイルの読み書き

Pythonのopen()関数を使ったファイルの読み書きの基本的な使い方とサンプルコードを紹介です。

open()の基本

基本的な記述

with open(ファイル名, モード) as 変数名:
	# 処理
変数名.closed

ファイルへのパス

open()関数でのファイルへのパス指定は、現在のディレクトリに対する相対パスまたは絶対パス。
クォーテーションで括って記述する。

指定可能なモードの種類

open()で指定可能なモードの種類です。

r読み込み(デフォルト)。
ファイルが存在しない場合はエラーとなる。
r+読み込み&書き込み、末尾に追加。
ファイルが存在しない場合はエラーとなる。
w書き込み、上書き(破棄して作成)。
ファイルが存在しない場合は新規作成。
w+読み込み&書き込み、上書き(破棄して作成)。
ファイルが存在しない場合は新規作成。
read()できるが既にない。
a書き込み、末尾に追加。
ファイルが存在しない場合は新規作成。
a+読み込み&書き込み、末尾に追加。
ファイルが存在しない場合は新規作成。
xファイルが存在しない場合のみ新規作成。
Python3.x~

バイナリモードは’rb’や’w+b’などで指定可能。

tテキストモード(デフォルト)
bバイナリモード

モードはクォーテーションで括って記述します。

open()で使われる処理

read()読み込み
readline()一行ずずリスト型で読み込む
readlines()リスト型で読み込む
write()書き込み
writelines()リスト型の書き込み
closedファイルを閉じる

テキストファイルを読み込む

open()を使い、読み込みモード「r」で開いてread()で取得するサンプルコードです。

with open("sample.txt", "r") as file:
	text = file.read()
	print(text)
file.closed

テキストファイルに書き込む

open()関数を使い、書き込みモード「w」でファイルを開いてwrite()で書き込むサンプルコードです。

「w」での書き込みは上書き(破棄して新規作成)モードになります。

with open("sample.txt", "w") as file:
	file.write("text")
file.closed

テキストファイルを読み込んで書き込む

読み込み&書き込みモード「r+」で開いて、read()で読み込み、write()で書き込むサンプルコードです。

「r+」での書き込みは追記モードになります。

with open("sample.txt", "r+") as file:
	log = file.read()
	print(log)
	file.write("text")
	file.closed

open()に関連するエラー

No such file or directory

そのようなファイルまたはディレクトリはありません。

存在しないファイルよ読み込みモードで開こうとしている。

File not open for reading

読み取りファイルが開いていません

指定のファイルが開いていないか、読み取りモードで開かれていない。
または読み取りモードで開かれていたが、既に.closedで閉じられている。

File not open for writing

書き込み用に開いていないファイル

ファイルが書き込みモードで開かれていない時に発生する。

expected a character buffer object

文字バッファーオブジェクトが必要

処理を実行する為には、値が文字列である必要がある。

count = 2
file.write(count)  # エラーとなる
file.write(str(count))  # OK