編集済み 3 数週間前 によって ExtremeHow 編集チーム
パイソンファイル処理入出力操作ウィンドウズマックリナックスプログラミングの基本中級データ管理スクリプティング
翻訳が更新されました 3 数週間前
Pythonでファイルを読み書きする方法を学ぶことは、プログラマーにとって重要なスキルです。ファイルにはプログラムで読み取ったり、変更して保存したりできるデータが含まれています。Pythonでは、ファイル処理は簡単で直感的です。このガイドでは、組み込みのopen関数を使用してPythonのファイル処理の基本と高度な概念を紹介します。さまざまなファイルモード、エラー処理、よくあるユースケースシナリオを探ります。
Pythonでファイル操作に進む前に、ファイルを読み書きするとはどういうことか理解することが重要です。
Pythonでファイルを読み書きするには、まずファイルを開く必要があります。Pythonには組み込みのopen
関数があります。この関数はファイルを開き、ファイルオブジェクトを返します。open
関数の構文は次のとおりです:
file_object = open(filename, mode)
ここで、filename
は開くファイルの名前であり、mode
はファイルを開く目的を示します。
ファイルモードは、ファイルが開かれた後にどのように使用されるかを決定します。以下は一般的なファイルモードのいくつかです:
'r'
: 読み取りモードはデフォルトモードです。ファイルを読み取り専用で開きます。'w'
: 書き込みモードでファイルを開きます。ファイルが存在しない場合は、新しいファイルを作成します。すでに存在する場合は、ファイルを切り詰めます。'a'
: 追記モードでファイルを開きますが、ファイルを切り詰めません。データは末尾に追加されます。'b'
: バイナリモードは、ファイルがバイナリ形式の場合に使用され、画像などのファイルに便利です。't'
: テキストモードはテキストファイル用で、デフォルトモードです。'x'
: 排他作成モード。このモードでは新しいファイルを作成し、ファイルがすでに存在する場合は失敗します。'+'
: このモードではファイルを読み書きの両方が可能です。ファイルを適切なモードで開いた後、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(カンマ区切り値)ファイルは、表形式のデータを保存するために使用されます。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(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プログラムでファイルを効率的に管理し、データが正しく安全に処理されるようにすることができます。
記事の内容に誤りがある場合, あなたは