こんにちは!Pythonのファイル入出力の世界へようこそ!
今日はPythonを使ってファイルの入出力について学ぶで!これ、プログラミングの基本中の基本やけど、めっちゃ便利なスキルやねん。たとえば、データを保存したり、読み込んだりするのにファイルがあったら、すごく効率的やん。
メリット
- データの保存:プログラムで生成したデータをファイルに保存できるから、後で使えるんや。
- データの共有:ファイルを介して他の人とデータを簡単に共有できるで。
- プログラムの効率化:毎回データを入力する手間が省けるから、時間の節約にもなるな。
例え話
思い出してみてな。おばあちゃんが作ったおはぎのレシピをノートに書いてるとするやん。ノートに書いておくことで、次回も同じおはぎが作れるし、友達にも教えられるやろ?ファイル入出力もそれと同じで、データを「ノート」に書き込んだり、読み込んだりする作業なんや。
さあ、早速ファイル入出力の基礎を学んでいこうか!
ファイルのオープンとクローズ:with文の使用
ファイルを扱うとき、まずはそのファイルを「オープン」せなあかん。オープンすることで、プログラムがそのファイルにアクセスできるようになるんや。そして、作業が終わったら「クローズ」して、リソースを解放する必要があるで。
with文の使い方
そこで登場するんが、with
文や。この文を使うと、ファイルをオープンした後、自動的にクローズしてくれるから、便利やねん。これを使わへんと、忘れてクローズせんかったら、メモリリークの原因になったりするから気をつけなあかんで。
基本的な使い方
with
文を使ったファイルのオープンとクローズの基本的な書き方はこんな感じや:
with open('sample.txt', 'r') as file:
content = file.read()
ここで、open
関数を使ってsample.txt
というファイルをオープンしてる。'r'
は読み込みモードを示してるで。file
はそのファイルオブジェクトや。with
文のブロックが終わると、自動的にファイルがクローズされるから、めっちゃ便利やろ?
まとめ
with
文を使うことで、ファイルのオープンとクローズをスムーズに行えるんや。これからファイルを扱うときは、ぜひこの方法を使ってみてな!
テキストファイルの読み込み:read(), readline(), readlines()
さあ、次はテキストファイルの読み込み方について学ぼうか!ファイルをオープンしたら、いろんな方法でデータを読み込むことができるで。ここでは、read()
, readline()
, readlines()
の3つのメソッドを紹介するわ。
read()
read()
はファイル全体を一気に読み込むメソッドや。これを使うと、ファイルの内容を全部取得できるで。
with open('sample.txt', 'r') as file:
content = file.read()
print(content)
このコードやったら、sample.txt
の内容が全部content
に読み込まれて、画面に表示されるんや。
readline()
次はreadline()
。これはファイルの1行だけを読み込むメソッドや。ファイルの内容を1行ずつ読みたいときに便利やで。
with open('sample.txt', 'r') as file:
line = file.readline()
print(line)
このコードやったら、1行目だけが表示されるねん。次に読むときはもう1回readline()
を使えば、次の行が読まれるで。
readlines()
最後にreadlines()
。これはファイル全体を行ごとにリストとして読み込むメソッドや。行ごとに分けて処理したいときに便利やねん。
with open('sample.txt', 'r') as file:
lines = file.readlines()
for line in lines:
print(line.strip()) # strip()で余分な空白を削除
このコードやったら、ファイルの全行がリストとしてlines
に格納され、1行ずつ表示されるで。
まとめ
read()
はファイル全体を読み込む。readline()
は1行ずつ読み込む。readlines()
は全行をリストとして読み込む。
この3つのメソッドを使い分けて、必要なデータを効率よく読み込んでいこうや!
テキストファイルの書き込み:write(), writelines()
今回は、テキストファイルにデータを書き込む方法を学ぼう!ファイルにデータを保存するためには、書き込みモードでファイルをオープンして、write()
やwritelines()
メソッドを使うんや。
write()
まずはwrite()
メソッドや。これは、指定した文字列をファイルに書き込むためのもので、ファイルの中身を上書きすることもできるで。
with open('sample.txt', 'w') as file:
file.write('こんにちは!これは新しいテキストです。')
このコードやったら、sample.txt
に指定した文字列が書き込まれるねん。もしファイルが既に存在してたら、その内容は上書きされてしまうから注意せなあかんで!
writelines()
次にwritelines()
や。これは、リストの各要素をファイルに書き込むときに使うメソッドや。複数行を書き込みたいときに便利やで。
lines = ['1行目のテキスト\n', '2行目のテキスト\n', '3行目のテキスト\n']
with open('sample.txt', 'w') as file:
file.writelines(lines)
このコードやったら、lines
リストの内容がsample.txt
に書き込まれるんや。各行の後に\n
をつけることで、改行を入れるのを忘れんようにしような!
追記モード
もし既存のファイルに新しいデータを追加したい場合は、書き込みモードの代わりに追記モード('a'
)を使うとええで。
with open('sample.txt', 'a') as file:
file.write('これは追記されたテキストです。')
このコードは、既存の内容の後に新しいテキストが追加されるんや。
まとめ
write()
は文字列をファイルに書き込む。writelines()
はリストの内容をファイルに書き込む。- 追記モードを使うと、既存のファイルにデータを追加できる。
これで、ファイルにデータを書き込む基本がマスターできたで!さあ、次はCSVファイルの読み書きに進もうか!
CSVファイルの読み書き:csvモジュールの使用
次は、CSVファイルを扱う方法について学ぼう!CSV(カンマ区切り値)ファイルは、データを表形式で保存するのに便利やから、よく使われるんや。Pythonには、CSVファイルを簡単に扱えるcsv
モジュールが用意されてるで。
CSVファイルの読み込み
まずは、CSVファイルを読み込む方法や。csv.reader
を使うことで、CSVファイルの内容を行ごとに読み込むことができるで。
import csv
with open('sample.csv', 'r', encoding='utf-8') as file:
reader = csv.reader(file)
for row in reader:
print(row)
このコードやったら、sample.csv
の各行がリストとして取得され、1行ずつ表示されるんや。encoding='utf-8'
は文字コードの指定やから、日本語を含むファイルを扱うときは忘れんようにしような。
CSVファイルの書き込み
次は、CSVファイルにデータを書き込む方法や。csv.writer
を使って、行ごとにデータを追加していくで。
import csv
data = [
['名前', '年齢', '職業'],
['山田', '30', 'エンジニア'],
['田中', '25', 'デザイナー'],
]
with open('sample.csv', 'w', encoding='utf-8', newline='') as file:
writer = csv.writer(file)
writer.writerows(data)
このコードやったら、data
の内容がsample.csv
に書き込まれるんや。newline=''
を指定することで、余分な改行が入らんようにできるで。
まとめ
csv.reader
を使ってCSVファイルを行ごとに読み込む。csv.writer
を使ってデータをCSVファイルに書き込む。- 文字コードや改行の設定に注意して、正しくデータを扱おう!
これでCSVファイルの基本的な読み書きができるようになったで!次は、バイナリファイルの操作に進もうか!
バイナリファイルの操作:pickle モジュールの使用
さて、次はバイナリファイルの操作について学ぼう!バイナリファイルは、データを効率よく保存したり、読み込んだりするのに便利やねん。Pythonには、そんなバイナリデータを扱うためのpickle
モジュールがあるで。
バイナリファイルの書き込み
まずは、バイナリファイルにデータを書き込む方法や。pickle.dump()
を使って、オブジェクトをファイルに保存することができるで。
import pickle
data = {'名前': '山田', '年齢': 30, '職業': 'エンジニア'}
with open('data.pkl', 'wb') as file: # wbは書き込みバイナリモード
pickle.dump(data, file)
このコードやったら、data
辞書がdata.pkl
というバイナリファイルに書き込まれるんや。'wb'
は書き込みバイナリモードを意味するから、必ず指定せなあかんで。
バイナリファイルの読み込み
次は、バイナリファイルからデータを読み込む方法や。pickle.load()
を使って、保存したオブジェクトを復元することができるで。
import pickle
with open('data.pkl', 'rb') as file: # rbは読み込みバイナリモード
loaded_data = pickle.load(file)
print(loaded_data)
このコードやったら、data.pkl
からデータが読み込まれて、元の辞書オブジェクトが復元されるんや。'rb'
は読み込みバイナリモードやから、これも必ず指定しような。
まとめ
pickle.dump()
を使ってバイナリファイルにデータを書き込む。pickle.load()
を使ってバイナリファイルからデータを読み込む。- 書き込みモードは
'wb'
、読み込みモードは'rb'
を使うことを忘れんように!
これでバイナリファイルの基本的な操作ができるようになったで!これからは、ファイルを使ったデータの保存や読み込みがもっとスムーズになるはずや!次のステップに進む準備ができたら、どんどんやってみてな!
【Pythonファイル操作入門】テキスト・CSV・バイナリファイルの読み書きをマスターしよう!