Pythonでテキストファイルの書き込み、読み込み、追記について

Pythonでテキストファイルの書き込み読み込み追記について、例文とテキストファイルの中の様子を交えて解説します。

目次

テキスト操作をする基本の形
・書き込み、読み込み、追記の基本について
書き込み “w”
・write()を使った書き込み
・書き込み命令を複数使う場合
・writelines()を使った書き込み
読み込み “r”
・read()を使った読み込み
・read()で文字数を指定しない場合
・readline()を使った読み込み
・readlines()を使った読み込み
追記 “a”
・write()を使った追記
・書き込み”w”と追記”a”の違い
・withを使った書き込み、読み込み、追記について

・withを使ったテキスト操作をする基本の形
・テキストファイルが存在する、しないの確認



テキスト操作をする基本の形

変数=open(“ファイル名”,”操作モード”)

変数.操作方法()

変数.close()

open()で指定したファイル名操作モード(“w”、”r”、”a”)でテキストファイルを開いて、そのファイル情報を変数に格納します。そして、その変数に対して指定した操作方法を行い、それが終わればclose()でファイルを閉じます。

close()がないと正常な操作が行われないです。
※”w”・・・書き込みモード
※”r”・・・読み込みモード
※”a”・・・追記モード

書き込み読み込み追記の基本について

書き込み “w” 

書き込み “w” は、テキストファイルに文字列を書き込みます。
指定したテキストファイルが無い場合新規作成して、そこに指定した文字列を書き込みます。
テキストファイルがある場合は、もともとある文字列を削除してから書き込みます(上書き)。
書き込む方法
write・・・指定した文字列を書き込む。
writelines・・・リスト形式で指定した複数の文字列を書き込む。

読み込み “r”

読み込み “r”は、テキストファイルの文字列を読み込みます。
指定したテキストファイルが存在しない場合はエラーが表示され、読み込むことができないです。
読み込む方法
read・・・指定した文字数の、文字列を読み込みます。
readline・・・1行づつ文字列を読み込みます。
readlines・・・すべての文字列をリスト形式で読み込みます。

追記 “a”

追記”a”は、もともとあるテキストファイルに追加で書き込みを行います。
書き込む方法はwritewritelinesを使って追記を行います。
※存在しないテキストファイルに追記をすると、新規でテキストファイルが作成され、そこに書き込みが行われます。



書き込み ”w”

write()を使った書き込み

write()を使ってtest01.txtに書き込みを行っています。

test01.txtがtextフォルダに存在しない状態で、プログラムを実行しているので、test01.txtがプログラムの実行で新規作成されます。

※フォルダの中に書き込み命令で、テキストファイルを新規作成してから書き込みをする場合。または、上書きをする場合はあらかじめフォルダを作成しておかないといけないです。
上のプログラムだとtextフォルダをあらかじめ作成してから実行しています。テキストファイルは書き込み命令で新規作成されますが、フォルダは新規作成されないです

上のプログラムを実行した様子

textフォルダの中に、test01.txtファイルが新規作成されます。

テキストファイルの中身

test01.txtにThis isの文字列が書き込みされています。

書き込み命令を複数使う場合

最初の書き込みをした、テキストファイルに上書きをして実行しています。

テキストファイルの中身


This is a penが書き込まれていますが、改行またはスペースがないと見づらいので、改行したプログラムがこちら↓になります。

\nまたは¥nで改行します。

テキストファイルの中身

改行した方が見やすいです。

上の書き込みを行うプログラムを1行にしたのがこちら↓

文字列の間に改行コードを入れて、改行することもできます。

writelines()を使った書き込み

writelines()を使って、リストの中に複数の文字列を改行コードと一緒に入れて、書き込みを行っています。

テキストファイルの中身




読み込み ”r”


読み込むテキストファイルは下の画像に写っているファイルを使います。

read()を使った読み込み

read(3)で指定した文字数の3文字を読み込んでいます。

print文で表示した様子

read()で文字数を指定しない場合

read()で文字数を指定しない場合は、すべての文字列を読み込みます。

print文で表示した様子

readline()を使った読み込み

readline()でテキストファイルの1行目の文字列を読み込んでいます。

text_r.readline()もう1つ書くと、2行目の文字列” is ”を読み込みます。

print文で表示した様子


readline()を使ってテキストファイル内の文字列をすべて読み込むプログラムがこちら↓になります。

len関数で1行づつ読み込んだ文字列の個数を調べていきます。その個数が0になれば、文字列が無いという意味なので、読み込みを終了させています。

print文で表示した様子


readlines()を使った読み込み

readlines()すべての文字列をリスト形式で読み込みます。改行した場所は、改行コードも文字列と一緒に格納されています。

print文で表示した様子




追記 “a”

write()を使った追記

テキストファイルに追記(“a”)のモードで、SundayMondayの文字列を追記しています。

テキストファイルの中身


見づらいので、改行コードを入れて追記したプログラムがこちら↓になります。

テキストファイルの中身

write()の他にwritelines()を使った方法でも追記ができます。

書き込み”w”と追記”a”の違い

テキストファイルが存在しない状態で、書き込みを行うと、
書き込み”w”追記”a”両方とも新規でテキストファイルが作成され、そこに文字列が書き込まれます。

逆に、テキストファイルが既に存在する状態で、書き込みを行うと、
書き込み”w”は、もともとある文字列を削除してから書き込みを行います(上書き)
追記”a”は、もともとある文字列に追加して書き込みが行われます。



withを使った書き込み、読み込み、追記について

withを使ったテキスト操作をする基本の形

with open(“ファイル名”,”操作モード”) as 変数:

            変数.操作方法()

withを使った方法でもテキストファイルの書き込み、読み込み、追記ができます。
withを使う場合は.close()を書く必要がないので便利です

withを使った書き込み “w”

withを使った読み込み “r”

withを使った追記 “a”

テキストファイルが存在する、しないの確認

これでテキストファイルを調べてから、書き込みを行えばテキストファイルを間違えた場合の上書きが防げます。