Python でファイルを読み書きする方法

ファイルの読み取りと書き込みはプログラミングでよく行われるタスクですが、Python は組み込みのファイル処理機能により簡単に実行できます。ファイルの操作方法を理解することは、データの保存、ログ記録、構成管理などを処理することができるため、Python プログラマーにとって不可欠です。このガイドでは、Python でファイルを開く、読み取る、書き込む、閉じる方法と、さまざまなファイル モードを処理する方法について説明します。

ファイルの開き方と閉じ方

Python では、open() 関数を使用してファイルを開きます。open() 関数は、読み取りと書き込みのメソッドを提供するファイル オブジェクトを返します。ファイルの使用が終わったら、close() メソッドを使用してファイルを閉じ、システム リソースを解放することが重要です。

# Opening and closing a file
file = open("example.txt", "r")  # Open file for reading
# Perform file operations
file.close()  # Close the file

ファイルの読み取り

ニーズに応じて、Python でファイルの内容を読み取る方法はいくつかあります。

ファイル全体を読む

read() メソッドは、ファイルの内容全体を 1 つの文字列に読み取ります。

# Reading the entire file
with open("example.txt", "r") as file:
    content = file.read()
    print(content)

ファイルの行を読み込む

readline() メソッドはファイルから 1 行を読み取りますが、readlines() はすべての行を読み取ってリストとして返します。

# Reading lines using readline()
with open("example.txt", "r") as file:
    line = file.readline()
    while line:
        print(line.strip())
        line = file.readline()

# Reading all lines using readlines()
with open("example.txt", "r") as file:
    lines = file.readlines()
    for line in lines:
        print(line.strip())

ファイルを行ごとに読み込む

ファイルを 1 行ずつ読み取るための推奨方法は、ファイル オブジェクトに対して直接 for ループを使用することです。この方法は、特に大きなファイルの場合にメモリ効率が優れています。

# Reading file line by line using a for loop
with open("example.txt", "r") as file:
    for line in file:
        print(line.strip())

ファイルへの書き込み

Python では、write() メソッドと writelines() メソッドを使用してファイルに書き込むことができます。'w' (書き込み) や 'a' (追加) など、書き込みをサポートするモードでファイルを開く必要があります。

ファイルへの書き込み

write() メソッドは、単一の文字列をファイルに書き込みます。書き込みモード 'w' でファイルを開くと、新しいファイルが作成されるか、既存のファイルが上書きされます。

# Writing to a file
with open("output.txt", "w") as file:
    file.write("Hello, World!\n")
    file.write("This is a new line.")

ファイルへの追加

ファイルを追加モード 'a' で開くと、既存のファイルの内容を上書きせずに、ファイルの末尾に内容を追加できます。

# Appending to a file
with open("output.txt", "a") as file:
    file.write("\nThis line is appended.")

複数行の書き込み

writelines() メソッドは、ファイルに複数の行を書き込むために使用されます。各行を表す文字列のリストが必要です。

# Writing multiple lines to a file
lines = ["Line 1\n", "Line 2\n", "Line 3\n"]
with open("output.txt", "w") as file:
    file.writelines(lines)

ファイルモード

Python の open() 関数は、ファイルを開くためのいくつかのモードをサポートしています。

  • 'r' - 読み取りモード (デフォルト)。読み取り用にファイルを開きます。
  • 'w' - 書き込みモード。書き込み用にファイルを開きます (新しいファイルを作成するか、既存のファイルを切り捨てます)。
  • 'a' - 追加モード。追加用にファイルを開きます(ファイルが存在しない場合は新しいファイルを作成します)。
  • 'r+' - 読み取りおよび書き込みモード。読み取りと書き込みの両方でファイルを開きます。
  • 'b' - バイナリ モード。ファイルをバイナリ モードで開きます ('rb''wb' などで使用されます)。

結論

基本的な概念とファイル モードを理解すれば、Python でのファイルの読み取りと書き込みは簡単です。ファイル処理をマスターすることで、データを効率的に管理し、ユーザーの入出力を処理し、ファイル操作を伴うタスクを自動化できます。これらのテクニックを使用して練習し、Python でのファイル管理を習得してください。