Python - ファイルの読み込み: 初心者のガイド
こんにちは、将来のPythonのマエストロ!? 今日、私たちはPythonのファイル操作の世界に興味深い旅に出かけます。あなたの親しみのある近所のコンピュータ先生として、私はあなたをファイルの読み込みの裏を外を案内します。これまでコードを一度も書かなかったことがあるとしても心配しないでください - 私たちはゼロから始めて、一歩一歩登ります。だから、お気に入りの飲み物を持って、快適に座り、一緒に飛び込んでみましょう!
ファイルを読み込むために開く
ファイルを読み込む前に、開く必要があります。これは、家に入る前にドアを叩くことと同じです。Pythonでは、open()
関数を使用してこれを行います。まず、簡単な例を見てみましょう:
file = open("hello.txt", "r")
以下が起こっていることです:
-
open()
はファイルを開くために使用する関数です -
"hello.txt"
は開きたいファイルの名前です -
"r"
は読み込みモードでファイルを開いていることを意味します
終了したら常にファイルを閉じるようにしましょう:
file.close()
read()メソッドを使用してファイルを読み込む
ファイルを開いたら、その内容を読み込みましょう。read()
メソッドは、すべての内容を一気に吸い取る真空掃除機のようです。以下がその使用方法です:
file = open("hello.txt", "r")
content = file.read()
print(content)
file.close()
このコードは、ファイルのすべてを出力します。それは簡単ですが、大きなファイルには注意が必要です - それらはコンピュータのメモリをすべて使ってしまうかもしれません!
readline()メソッドを使用してファイルを読み込む
時に、ファイルを一行ずつ読み込みたい、まるで美味しい料理の一口ごとを味わおうとするようなこともあります。そんなときに便利なのがreadline()
です:
file = open("hello.txt", "r")
line = file.readline()
while line:
print(line, end='')
line = file.readline()
file.close()
このコードは、ファイルの各行を読み込み、出力します。print()
関数のend=''
は、readline()
が改行文字を保持するため、余分な改行を追加しないようにします。
readlines()メソッドを使用してファイルを読み込む
ファイルのすべての行をリストとしてほしい場合はどうでしょうか?そんなときに使えるのがreadlines()
です:
file = open("hello.txt", "r")
lines = file.readlines()
for line in lines:
print(line, end='')
file.close()
このメソッドは、ファイルの各行を要素とするリストを返します。それは、各チョコレートがテキストの一行であるチョコレートボックスのようなものです!
with文の使用
それでは、Pythonが提供するすごいトリックについて話しましょう - with
文です。それは、门(ファイル)を忘れずに閉じるような責任感のある友のようなものです:
with open("hello.txt", "r") as file:
content = file.read()
print(content)
with
文は、処理が完了したときに自動的にファイルを閉じます。close()
を呼ぶことをもう忘れましょう!
バイナリモードでファイルを読み込む
時に、テキスト以外のファイル、例えば画像や実行ファイルを読み込む必要があります。これらの場合には、バイナリモードを使用します:
with open("image.jpg", "rb") as file:
binary_data = file.read()
print(len(binary_data), "バイト読み込み")
"rb"
モードは、ファイルをバイナリ読み込みモードで開きます。それは、一と零を見るための特別な眼鏡をかけるようなものです!
ファイルから整数データを読み込む
数字が一行ごとに書かれたファイルがあるとします。これをどのように読んで整数として使用するかを見てみましょう:
with open("numbers.txt", "r") as file:
numbers = [int(line.strip()) for line in file]
print("数字の合計:", sum(numbers))
このコードは、各行を読み込み、それを整数に変換してリストに追加します。そして、私たちは数字で計算を行うことができます!
ファイルから浮動小数点数データを読み込む
整数と同様に、浮動小数点数を読み込むこともできます:
with open("measurements.txt", "r") as file:
measurements = [float(line.strip()) for line in file]
print("測定値の平均:", sum(measurements) / len(measurements))
こちらでは、float()
を使用して文字列を十進数に変換しています。
"r+"モードを使用してファイルを読み書きする
時に、同じファイルに読み書きする必要があります。"r+"モードは、それを可能にします:
with open("journal.txt", "r+") as file:
content = file.read()
file.write("\n新しいエントリー:今日はPythonでのファイル操作について学びました!")
file.seek(0)
updated_content = file.read()
print(updated_content)
このコードは、ファイルを読み込み、新しい行を追加し、その変更を表示するために再び読み込みます。
Pythonでファイルを同時に読み書きする
ここにワクチンがあります:私たちは2つのファイルオブジェクトを使用して同時に読み書きすることができます:
with open("original.txt", "r") as read_file, open("copy.txt", "w") as write_file:
for line in read_file:
write_file.write(line.upper())
このコードは、一つのファイルから読み込み、アッパーケースバージョンを別のファイルに書き込みます。それは、叫んでいるコピーマシンのようなものです!
特定のオフセットからファイルを読み込む
時に、ファイルの特定のポイントから読み込みたい場合もあります。seek()
メソッドを使用してこれを行うことができます:
with open("long_text.txt", "r") as file:
file.seek(50) # 50バイト目に移動
partial_content = file.read(100) # そのポイントから100バイト読み込む
print(partial_content)
これは、本に書籤を挟んで、その場所から読み始めるようなものです。
では、学んだすべてのメソッドを便利な表にまとめてみましょう:
メソッド | 説明 |
---|---|
open() |
ファイルを開く |
read() |
ファイルの内容をすべて読む |
readline() |
一行を読む |
readlines() |
全行をリストに読む |
with 文 |
ファイルを自動的に閉じる |
"rb" モード |
ファイルをバイナリ読み込みモードで開く |
int() / float()
|
文字列を数に変換 |
"r+" モード |
ファイルを読み書きモードで開く |
seek() |
ファイルの特定の位置に移動 |
それでは、これで始めてのPythonでのファイル読み込みの基本を学びました。覚えておいて、これらを自分のファイルで試してみてください。もしかしたら、次のPythonファイル操作の魔法使いになるかもしれません!幸せなコーディング!?✨
Credits: Image by storyset