Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのprint()関数のfileパラメータ活用術:ファイルや標準出力への書き込み方法

Pythonのprint()関数は、コマンドラインや対話型インタプリタにテキストを表示するために日常的によく使われます。しかし、実はこの関数は画面表示だけでなく、ファイルや出力ストリームに直接書き込むこともできるのです。その鍵となるのがfileパラメータです。

ファイルへの出力

print()関数のfile引数を使えば、開いたファイルオブジェクトに対して直接テキストを書き込めます。まず新しいファイル名を指定して書き込みモード("w")でファイルを開き、そのファイルオブジェクトをprint()関数のfile引数に渡します。書き込みたい値は、通常の引数として渡すことができます。

サンプルコード

Newfile = open("exam_score.txt", "w")

# 変数の定義
exam_name = "Degree"
exam_date = "2-Nov"
exam_score = 323

# file引数にファイルオブジェクトを指定
print(exam_name, exam_date, exam_score, file=Newfile, sep=",")

# ファイルを閉じる
Newfile.close()

実行結果

上記のコードを実行すると、「exam_score.txt」という名前のファイルが作成され、以下の内容が書き込まれます。

Degree,2-Nov,323

この例ではsep=","を指定しているため、各値がカンマ区切りで1行に出力されています。sep引数を変更すれば、タブ区切りやスペース区切りなど、任意の形式で出力できます。

標準エラー出力への出力

fileパラメータは、ファイルだけでなく標準出力(stdout)や標準エラー出力(stderr)にも対応しています。これにはsysモジュールを利用します。エラーメッセージをログとは別のストリームに出したい場合などに便利です。

サンプルコード

import sys
Newfile = open("exam_score.txt", "w")

# 変数の定義
exam_name = "Degree"
exam_date = "2-Nov"
exam_score = 323

# 標準エラー出力へ出力
print(exam_name, exam_date, exam_score, file=sys.stderr, sep=",")

# ファイルを閉じる
Newfile.close()

実行結果

上記のコードを実行すると、次のような結果が得られます。

Degree,2-Nov,323

まとめ

print()関数のfileパラメータを使うことで、以下のような柔軟な出力先の指定が可能になります。

  • ファイルへの書き込み: 開いたファイルオブジェクトを渡すだけでOK
  • 標準エラー出力: sys.stderrを指定することで、エラー用の出力が可能
  • 標準出力: sys.stdoutを明示的に指定することもできる

ログの保存やデバッグ情報の出力など、用途に応じて使い分けることで、より効率的なPythonプログラミングが実現できます。

  1. Pythonのファイルオブジェクトとは?open関数によるファイル操作の基本を徹底解説

    Pythonでは、ファイルを読み書きする際に特別なライブラリをインポートする必要はありません。ファイル操作は言語にネイティブに組み込まれているためです。 まず最初に行うのは、組み込み関数 open() を使ってファイルオブジェクトを取得することです。open() 関数はファイルを開き、ファイルオブジェクトを返します。このファイルオブジェクトには、開いたファイルから情報を取得したり、内容を操作したりするためのメソッドや属性が含まれています。 ファイルとは何か? ファイル操作を行う前に、「ファイルとは何か」を理解しておきましょう。ファイルとは、関連する情報を保存するためにディスク上に確保された「名

  2. PythonでJSONファイルを見やすく整形表示(プリティプリント)する方法

    Pythonは、他の多くのプログラミング言語と同様に、JavaScript Object Notation(JSON)データをスムーズに扱うことができます。さまざまなソースからJSONデータを取り込み、他のファイルと同じように操作できるため、JSONファイルを読みやすい形で整形表示(プリティプリント)したい場合に非常に便利です。 この記事では、PythonでJSONファイルをプリティプリントする2つの方法をご紹介します。どちらの方法もターミナルとコマンドラインを使用しますが、そのうち1つはPythonの知識がまったく不要です。 プリティプリントとは?(JSONファイルで使う理由) 簡単に言え