Pythonでファイル操作をするときに必ず登場するwith open()構文。
初心者の方にとっては「このコード、何が起きてるの?」「ファイルってどこにできるの?」と疑問に感じることが多いですよね。
この記事では、実際のコードを例に、ファイルの書き込み・読み込みの流れと、保存先の確認方法をわかりやすく解説します。
「ファイル操作がわからない…」という初学者がスムーズに理解できるよう、丁寧に順を追って説明していきます。
※本記事はPython 3系(公式ドキュメント準拠)をもとにしています。
実際のコード例
with open("sample.txt", "w") as f:
f.write("こんにちは、Python!")
with open("sample.txt", "r") as f:
content = f.read()
print(content)
この短いコードで、ファイルの作成から内容の読み出しまで完結しています。
では、内部で何が起きているのか、順を追って見ていきましょう。
このコードで何が起きているの?
1. ファイルの書き込み
"sample.txt"というファイルを書き込みモード(”w”)で開きます。f.write(...)によって、ファイルに"こんにちは、Python!"という文字列が書き込まれます。withを使うことで、ブロックを抜けたタイミングでファイルが自動的に閉じられます。
ここがポイントです👇
2. ファイルの読み込み
- 同じ
"sample.txt"を読み込みモード(”r”)で開きます。 f.read()でファイルの中身を読み込み、変数contentに格納します。print(content)で内容を表示します。
このとき、すでに書き込まれた「こんにちは、Python!」という文字列がターミナルやエディタ上に出力されます。
ファイルはどこに作成されるの?
このコードを実行すると、sample.txtは「Pythonスクリプトを実行した場所(カレントディレクトリ)」に作成されます。
カレントディレクトリを確認する方法
import os print(os.getcwd())
上記を実行すると、現在の作業フォルダ(Pythonがファイルを作成する場所)のパスが表示されます。
こんな感じで表示されます。
実際にそのフォルダを開いてみると・・・
ありました!
このように、Pythonは基本的に「実行したスクリプトのある場所」にファイルを作成します。
保存先を指定したい場合
保存先を明示的に指定したい場合は、以下のようにフルパス(絶対パス)を使います。
with open("C:/Users/ユーザー名/Documents/sample.txt", "w", encoding="utf-8") as f:
f.write("保存先を指定してみたよ!")
※Windowsでは「バックスラッシュ(\)」ではなく「スラッシュ(/)」を使うのが安全です。
MacやLinuxでも同様に動作します。
よくある疑問と対策
❓ ファイルが見つからない!
→ 実行環境(VS Code、Jupyter Notebook、ターミナルなど)によってカレントディレクトリが異なる場合があります。
常にos.getcwd()で確認しておくと安心です。
❓ ファイルが上書きされる?
→ "w"モードは常に上書きします。追記したい場合は"a"モード(append)を使用しましょう。
with open("sample.txt", "a") as f:
f.write("\n追記してみました!")
これで既存の内容の下に新しい行が追加されます。
💡 補足:エンコーディングについて
ファイルを開く際は、文字化けを防ぐためにencoding="utf-8"を指定するのがおすすめです。
特にWindows環境ではデフォルトエンコードが異なる場合があるため注意しましょう。
まとめ
with open()はファイルを開いて処理し、自動で閉じてくれる安全な構文- ファイルは基本的に「スクリプトを実行した場所」に作成される
- 保存先を指定したい場合はフルパスを使う
- 追記モードやエンコーディング指定など、慣れると業務自動化にも応用可能
Pythonのファイル操作は、慣れると非常に便利で強力な機能です。今回のような「どこにファイルができるの?」という疑問は、初心者が最初にぶつかる壁ですが、理解できれば業務改善やデータ処理の自動化にも応用できます。
次回は、さらに実用的な「CSVファイルの読み書き」や「Excel操作(openpyxl)」など、ビジネスで役立つファイル操作を紹介します。

