ウィンドウズマックソフトウェア設定セキュリティ生産性リナックスAndroidパフォーマンス設定Apple すべて

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

編集済み 3 数週間前 によって ExtremeHow 編集チーム

パイソンファイル処理入出力操作ウィンドウズマックリナックスプログラミングの基本中級データ管理スクリプティング

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

翻訳が更新されました 3 数週間前

Pythonでファイルを読み書きする方法を学ぶことは、プログラマーにとって重要なスキルです。ファイルにはプログラムで読み取ったり、変更して保存したりできるデータが含まれています。Pythonでは、ファイル処理は簡単で直感的です。このガイドでは、組み込みのopen関数を使用してPythonのファイル処理の基本と高度な概念を紹介します。さまざまなファイルモード、エラー処理、よくあるユースケースシナリオを探ります。

ファイル操作の理解

Pythonでファイル操作に進む前に、ファイルを読み書きするとはどういうことか理解することが重要です。

ファイルを開く

Pythonでファイルを読み書きするには、まずファイルを開く必要があります。Pythonには組み込みのopen関数があります。この関数はファイルを開き、ファイルオブジェクトを返します。open関数の構文は次のとおりです:

file_object = open(filename, mode)

ここで、filenameは開くファイルの名前であり、modeはファイルを開く目的を示します。

ファイルモード

ファイルモードは、ファイルが開かれた後にどのように使用されるかを決定します。以下は一般的なファイルモードのいくつかです:

ファイルからの読み取り

ファイルを適切なモードで開いた後、read()readline()readlines()などのメソッドを使用して内容を読み取ることができます。

read()メソッドの使用

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

# ファイルを読み取りモードで開く
file_object = open("example.txt", "r")
# 内容をすべて読む
content = file_object.read()
# 内容を表示
print(content)
# ファイルを閉じる
file_object.close()

readline()メソッドの使用

readline()メソッドはファイルから1行を読み取り、文字列として返します。

# ファイルを開く
file_object = open("example.txt", "r")
# 最初の行を読む
first_line = file_object.readline()
# 最初の行を表示
print(first_line)
# ファイルを閉じる
file_object.close()

readlines()メソッドの使用

このメソッドはファイル内のすべての行を読み取り、それらを文字列のリストとして返します。各文字列はファイル内の1行を表します。

# ファイルを開く
file_object = open("example.txt", "r")
# すべての行を読む
lines = file_object.readlines()
# すべての行を表示
for line in lines:
    print(line)
# ファイルを閉じる
file_object.close()

ファイルへの書き込み

ファイルにデータを書き込むには、書き込みモード('w'、'a'、または'x'のいずれか)で開く必要があります。write()writelines()メソッドは、ファイルにデータを書き込むために使用されます。

write()メソッドの使用

write()メソッドは、ファイルに1つの文字列を書き込みます。

# ファイルをライトモードで開く
file_object = open("example.txt", "w")
# ファイルにデータを書く
file_object.write("これは例のテキストです。")
# ファイルを閉じる
file_object.close()

writelines()メソッドの使用

writelines()メソッドは、文字列のリストをファイルに書き込みます。

# ファイルを追記モードで開く
file_object = open("example.txt", "a")
# 文字列のリスト
lines = ["最初の行\n", "2行目です\n", "3行目です\n"]
# ファイルに行を書く
file_object.writelines(lines)
# ファイルを閉じる
file_object.close()

ファイルを閉じる

ファイルを使用した後は必ず閉じることが重要です。この目的にはclose()メソッドが使用されます。これにより、ファイルが使用していたリソースが解放されます。

# ファイルを正しく閉じる
file_object.close()

with文を使用してファイルを開くこともできます。この方法では、例外が発生した場合でもファイルが自動的に閉じられることが保証されます。例:

with open("example.txt", "r") as file_object:
    content = file_object.read()
    print(content)
# ファイルを明示的に閉じる必要がない

ファイル例外の処理

ファイルを扱う際にエラーが発生する可能性があります。これらのエラーを適切に処理することで、プログラムの堅牢性が向上します。Pythonは、tryおよびexceptステートメントを使用してこのような例外を処理するメカニズムを提供します。

try:
    with open("example.txt", "r") as file_object:
        content = file_object.read()
        print(content)
except FileNotFoundError:
    print("ファイルが存在しません。")
except IOError:
    print("ファイルにアクセス中にエラーが発生しました。")

この例では、ファイルが存在しないかアクセスできない場合にメッセージが表示され、プログラムはクラッシュせずに実行を続行します。

さまざまなファイル種類を扱う

Pythonでは、テキストファイルやバイナリファイルなど、さまざまなファイルタイプを扱うことができます。ファイルの種類によってアプローチが多少異なる場合があります:

バイナリファイル

バイナリファイルはバイナリ形式のデータを含んでいます。バイナリファイルを扱うには、ファイル名に'b'を追加してバイナリモードで開きます(例: 'rb'はバイナリ読み取りモード)。

with open("image.jpg", "rb") as file_object:
    content = file_object.read()
    # バイナリ内容を処理

CSVファイル

CSV(カンマ区切り値)ファイルは、表形式のデータを保存するために使用されます。Pythonはcsvモジュールを提供してCSVファイルを扱います。

import csv
# CSVの読み取り
with open("data.csv", "r") as file_object:
    csv_reader = csv.reader(file_object)
    for row in csv_reader:
        print(row)
# CSVへの書き込み
with open("output.csv", "w", newline='') as file_object:
    csv_writer = csv.writer(file_object)
    csv_writer.writerow(["Header1", "Header2"])
    csv_writer.writerow(["Value1", "Value2"])

JSONファイル

JSON(JavaScriptオブジェクト表記法)は、データの保存と交換に広く使われている形式です。Pythonのjsonモジュールは、JSONファイル処理を簡単にします。

import json
# JSONの読み取り
with open("data.json", "r") as file_object:
    data = json.load(file_object)
    print(data)
# JSONの書き込み
with open("output.json", "w") as file_object:
    json.dump({"key": "value"}, file_object)

高度なファイル操作

検索と再帰

seek()メソッドは、ファイルオブジェクトの位置を変更し、ファイル内のさまざまな位置に移動できるようにします。

# seekを使用してファイル位置を変更
with open("example.txt", "r") as file_object:
    file_object.seek(5)
    content = file_object.read()
    print(content)

ファイルオブジェクトをイテレータとして使用して、行を反復処理することもできます。

with open("example.txt", "r") as file_object:
    for line in file_object:
        print(line)

まとめ

Pythonでファイルを扱うことは、プログラマーがデータを効果的に保存、取得、操作するための基本的なスキルです。このガイドでは、ファイルの読み書きの基本を説明し、さまざまなファイルモードを探り、例外の処理方法を示しました。また、テキスト、バイナリ、CSV、JSONファイルなどさまざまなファイルタイプを扱う方法を提供しました。これらのツールを使用して、Pythonプログラムでファイルを効率的に管理し、データが正しく安全に処理されるようにすることができます。

記事の内容に誤りがある場合, あなたは


コメント