こんにちは!ノイです!
入出力
Pythonはファイルの入出力を簡単に行うことができます。ファイルの読み込み、書き込み、追記などの操作ができ、テキストファイルだけでなくバイナリファイルも扱うことができます。
ファイル操作
ファイルを開いて操作をするにはopen()関数を使用します。open()関数には、ファイル名と、ファイルを開くモードを指定する引数を渡します。
file = open("sample.txt", "r")
モード
上記の例では、sample.txtというファイルを読み込むために"r"というモードを指定しています。モードには以下のようなものがあります。
- "r":読み込みモード
- "w":書き込みモード(ファイルが存在しない場合は新しく作成される)
- "a":追記モード
- "x":排他的書き込みモード(ファイルが存在する場合はエラーになる)
- "b":バイナリモード(テキストファイル以外にも、画像ファイルなどのバイナリファイルを扱う場合に使用する)
ファイル読み書き
ファイルを開いたら、ファイルの中身を読み込んだり、書き込んだりすることができます。
# ファイルの読み込み file = open("sample.txt", "r") content = file.read() print(content) file.close() # ファイルの書き込み file = open("output.txt", "w") file.write("Hello, World!") file.close() # ファイルの追記 file = open("output.txt", "a") file.write("\nHow are you?") file.close()
read()メソッドを使うことで、ファイルの中身をすべて読み込むことができます。write()メソッドを使うことで、ファイルに文字列を書き込むことができます。また、write()メソッドを複数回実行することで、ファイルに複数行の文字列を書き込むこともできます。
ファイルを開いたら、必ずclose()メソッドでファイルを閉じることを忘れないようにしましょう。ファイルを閉じない場合、プログラムが終了するまでファイルを開いたままになります。
withを使う場合
with文を使用することで、close()メソッドを呼び出すことなくファイルを扱うことができます。with文を使用することで、ブロック内の処理が終了すると自動的にファイルが閉じられます。
以下は、with文を使用したファイルの読み込みと書き込みの例です。
# ファイルの読み込み with open("sample.txt", "r") as file: content = file.read() print(content) # ファイルの書き込み with open("output.txt", "w") as file: file.write("Hello, World!") # ファイルの追記 with open("output.txt", "a") as file: file.write("\nHow are you?")
with文を使うことで、ブロック内でのファイルの操作が完了すると、自動的にファイルが閉じられます。これにより、ファイルを開いたままにすることによる不具合を回避することができます。withブロックを抜ける前に例外が発生しても、ファイルは自動的に閉じられます。
また、with文は複数のファイルを扱う場合にも便利です。以下は、複数のファイルを読み込んで、それらの中身を結合して出力する例です。
with open("file1.txt", "r") as file1, open("file2.txt", "r") as file2, open("output.txt", "w") as output: content1 = file1.read() content2 = file2.read() output.write(content1 + content2)
with文を使用することで、複数のファイルを一度に扱うことができます。ファイルを開いた後、with文のブロック内で各ファイルの中身を読み込んで、最後にoutputファイルに結合した中身を書き込みます。with文を使用することで、ファイルの扱いが簡単になり、プログラムの読みやすさや保守性を向上することができます。
YouTubeでも解説をしています!
※この記事の一部情報にはChatGPTを利用しています。