ゼロからプログラマーになるために!【入出力とファイル操作編:5-3】テキストファイルの読み書き

program

プログラムの実行中にデータを保存したり、外部データを利用したい場合、ファイル操作が必要になります。この章では、Pythonを使ったテキストファイルの読み書きについて解説します。テキストファイルを扱うスキルを習得することで、データの永続化や共有が可能になります。


テキストファイルの基本操作

Pythonでは、open() 関数を使ってファイルを操作します。ファイルを操作する際には「モード」を指定する必要があります。


ファイルを開くモード

モード説明使用例
'r'読み取り専用open('file.txt', 'r')
'w'書き込み専用(既存の内容は上書き)open('file.txt', 'w')
'a'追記専用(既存の内容に追加)open('file.txt', 'a')
'r+'読み取りと書き込みopen('file.txt', 'r+')

テキストファイルの書き込み

ファイルにデータを書き込む場合、'w' モードや 'a' モードを使用します。

基本的な書き込み

例:ファイルへの書き込み

test.py(パイソンファイル)に下記コードを書き込み、example.txt(テキストファイル)に文字を書き込む動きをします。

VSコード内でコードを書くためのファイルtest.pyと文字が書き込まれるためのファイル(example.txt)を作成しtest.py(パイソンファイル)を実行してください。

# 書き込み専用モードでファイルを開く
with open("example.txt", "w") as file:
file.write("こんにちは、Pythonの世界へ!\n")
file.write("ファイル操作を学びましょう。\n")

実行結果

example.txt の内容:

こんにちは、Pythonの世界へ!
ファイル操作を学びましょう。

追記(既存ファイルに追加)

'a' モードを使用すると、既存の内容を残したまま新しいデータを追記できます。

例:ファイルへの追記

# 追記モードでファイルを開く
with open("example.txt", "a") as file:
file.write("新しい行を追加しました。\n")

実行結果

example.txt の内容:

こんにちは、Pythonの世界へ!
ファイル操作を学びましょう。
新しい行を追加しました。

テキストファイルの読み取り

ファイルからデータを読み取る場合は、'r' モードを使用します。

基本的な読み取り

例:ファイル全体を読み取る

# 読み取り専用モードでファイルを開く
with open("example.txt", "r") as file:
content = file.read()
print(content)

実行結果

こんにちは、Pythonの世界へ!
ファイル操作を学びましょう。
新しい行を追加しました。

ファイルを1行ずつ読み取る

readline()for ループを使うことで、ファイルを1行ずつ処理できます。

例:1行ずつ読み取る

with open("example.txt", "r") as file:
for line in file:
print(line.strip()) # strip()で改行を除去

実行結果

こんにちは、Pythonの世界へ!
ファイル操作を学びましょう。
新しい行を追加しました。

ファイル操作の応用例

例1:データの保存と読み込み

書き込み

# ユーザー情報を保存
with open("users.txt", "w") as file:
users = ["Alice", "Bob", "Charlie"]
for user in users:
file.write(user + "\n")

最後の行の「+ "\n"」は改行文字を追加して、各ユーザー名を1行ずつ書き込むようにしています。
コード解説はこちら

読み取り

# ユーザー情報を読み込み
with open("users.txt", "r") as file:
users = [line.strip() for line in file]
print(users)

実行結果

['Alice', 'Bob', 'Charlie']

例2:簡易ログシステム

プログラムの動作記録をファイルに保存するログシステムの例です。

from datetime import datetime

# ログを書き込む関数
def write_log(message):
with open("log.txt", "a") as file:
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
file.write(f"[{timestamp}] {message}\n")

# ログの記録
write_log("プログラムが開始されました。")
write_log("ユーザーがログインしました。")

log.txt の内容:

[2024-11-08 14:00:00] プログラムが開始されました。
[2024-11-08 14:05:00] ユーザーがログインしました。

ファイル操作の注意点

  1. ファイルのクローズ
    ファイルを操作した後は必ず閉じる必要があります。with 文を使うと、自動的にファイルが閉じられるので安全です。
  2. エラーハンドリング
    ファイルが存在しない場合やアクセス権がない場合にエラーが発生します。try-except を使うことでエラーを適切に処理できます。

例:エラーハンドリング

try:
with open("nonexistent.txt", "r") as file:
content = file.read()
except FileNotFoundError:
print("ファイルが見つかりません。")

file.read(): ファイル全体を文字列として読み取るメソッド ※上記ではファイルが存在しない為エラーになる

図解:ファイル操作の流れ

1. ファイルを開く (open)

2. 書き込みまたは読み取り (write/read)

3. ファイルを閉じる (自動または手動でclose)

まとめ

  • Pythonでは、open() 関数を使ってテキストファイルを簡単に操作できます。
  • 書き込みには 'w' または 'a' モード、読み取りには 'r' モードを使用します。
  • withを使うと、ファイルのクローズ忘れを防ぐことができます。
  • ファイル操作を応用することで、ログの記録やデータの保存・読み込みが可能になります。

次回は、エラーが発生した場合の対応方法として、「エラーハンドリング」について学びます。これにより、より堅牢なプログラムを作成できるようになります!


次のステップ:エラーハンドリング(例外処理)

次回は、プログラムの実行中に発生するエラーを適切に処理する「エラーハンドリング」について学びます。これを習得することで、プログラムの安定性が向上し、実用的なアプリケーションの作成が可能になりますので、ぜひお楽しみに!

コメント

タイトルとURLをコピーしました
//投稿内コードにコピー表示 //コピー表示ここまで