Pythonのprint関数でファイル出力する方法を丁寧に解説

python icon
Python

こんにちは、とまだです。

プログラミングでprint関数を使っていて、「この結果を後で見返したいな」と思ったことはありませんか?

画面に表示されるだけだと、スクロールで流れてしまいますよね。

実は、print関数でファイルに保存する方法があるんです。

今回は、Pythonのprint関数を使ったファイル出力について、初心者でも分かるように解説していきます。

print関数でファイル出力するとは?

普段、私たちはprint関数で画面に文字を表示していますよね。

これは、手書きでメモを見せるようなものです。

一方、ファイル出力は、ノートに記録を残すイメージです。

画面表示は一時的ですが、ファイルなら後から何度でも確認できます。

つまり、print関数の出力先を画面からファイルに切り替えるということなんです。

なぜファイル出力が必要なのか

開発していると、こんな場面に遭遇します。

プログラムの動作ログを残したい。

処理結果を他の人と共有したい。

大量のデータを出力して分析したい。

こういうとき、画面表示だけでは限界があります。

ファイルに保存しておけば、いつでも確認できて便利です。

基本的な使い方

まずは、最もシンプルな例から見ていきましょう。

以下のコードは、テキストファイルに文字を書き込む基本形です。

# ファイルを開いて書き込む
with open("output.txt", "w", encoding="utf-8") as f:
    print("初めてのファイル出力です", file=f)

ポイントはfile=fの部分です。

これで出力先がファイルに切り替わります。

複数行を書き込む場合

続けて複数の内容を書き込むこともできます。

with open("output.txt", "w", encoding="utf-8") as f:
    print("1行目のデータ", file=f)
    print("2行目のデータ", file=f)
    print("3行目のデータ", file=f)

print関数は自動で改行してくれるので便利です。

一方、write()メソッドを使うと改行は自分で入れる必要があります。

文字化けを防ぐコツ

日本語を扱うときは、文字コードの指定が大切です。

encoding="utf-8"を忘れると文字化けすることがあります。

特にWindows環境では注意が必要です。

簡単に言うと、日本語の文字をコンピュータが理解できる形式に変換する方法を指定しているんです。

UTF-8は世界共通の変換方法なので、基本的にはこれを使っておけば安心です。

よくある活用シーン

ログファイルの作成

プログラムの動作記録を残すときに使います。

例えば、処理の開始時刻や終了時刻を記録したり。

エラーが発生した場所を記録したり。

後から「あのとき何が起きたか」を確認できます。

データの保存

計算結果や集計データをファイルに保存します。

CSVファイルとして出力すれば、Excelでも開けます。

他のプログラムでデータを再利用することも可能です。

レポートの自動生成

定期的なレポートを自動で作成できます。

毎日の売上データをまとめたり。

システムの稼働状況を報告したり。

手作業を減らして効率化できます。

追記モードの使い方

新規作成ではなく、既存ファイルに追記したい場合もありますよね。

そんなときは"a"モードを使います。

# 既存ファイルに追記する
with open("log.txt", "a", encoding="utf-8") as f:
    print("新しいログを追加", file=f)

"w"だと上書きになりますが、"a"なら末尾に追加されます。

日記帳に新しいページを書き足すイメージです。

エラーへの対処法

ファイル操作では、時々エラーが発生します。

例えば、ファイルが読み取り専用だったり。

ディスクの空き容量が不足していたり。

そんなときのために、エラー処理を入れておきましょう。

try:
    with open("output.txt", "w", encoding="utf-8") as f:
        print("重要なデータ", file=f)
except Exception as e:
    print(f"エラーが発生しました: {e}")

これで、もしエラーが起きても原因が分かります。

リストデータをまとめて出力

リストの中身を一気に出力したいときもあります。

for文を使えば簡単です。

fruits = ["りんご", "バナナ", "みかん"]

with open("fruits.txt", "w", encoding="utf-8") as f:
    for fruit in fruits:
        print(fruit, file=f)

各要素が1行ずつ書き込まれます。

データが多くても、同じ方法で対応できます。

printとwriteの使い分け

print関数以外に、write()メソッドも使えます。

どちらを使うか迷うかもしれません。

print関数の特徴は以下の通りです。

自動で改行が入るので楽です。

複数の値をスペース区切りで出力できます。

数値も自動で文字列に変換してくれます。

一方、write()メソッドは以下の特徴があります。

改行が必要なら自分で\nを付けます。

文字列しか書き込めません。

細かい制御が必要なときに便利です。

用途に応じて使い分けると良いでしょう。

まとめ

今回は、print関数でファイル出力する方法を解説しました。

基本はfile=引数を使うだけです。

とてもシンプルですよね。

文字化けを防ぐためにencoding="utf-8"を忘れずに。

エラー処理も入れておくと安心です。

ファイル出力を使いこなせば、プログラムの可能性が広がります。

ログを残したり、データを保存したり。

様々な場面で活用できます。

まずは簡単な例から試してみてください。

慣れてきたら、自分なりの応用を考えてみるのも楽しいですよ。

共有:

著者について

とまだ

とまだ

フルスタックエンジニア

Learning Next の創設者。Ruby on Rails と React を中心に、プログラミング教育に情熱を注いでいます。初心者が楽しく学べる環境作りを目指しています。

著者の詳細を見る →