Python入門トップページ


目次

  1. Visual Studio Code でソースコードを準備する
  2. コマンドプロンプトで実行する
  3. 実行結果をファイルに書き出す
  4. コマンドライン引数を使用する (1) 位置引数の使用
  5. コマンドライン引数を使用する (2) オプショナル引数の使用

コマンドラインインタフェース (CLI) で Python プログラムを実行しよう

実行結果をファイルに書き出す

画面に表示される実行結果をテキストファイルに書き出すことも可能です.これをリダイレクトと言います.リダイレクトは python プログラム名 > 出力ファイル名 として実行します.すると指定したファイルに出力されます.出力結果はテキストエディタで開いたり,コマンドプロンプトではtype コマンドで中身を確認できます.このとき,出力ファイル名と同じ名前のファイルがすでに存在する場合は一旦中身が削除されてから書き込まれることに注意してください.

まず,プログラムを実行してファイル (results.txt) に出力します.

(base) C:\Users\rinsaka\Documents\python>python circle.py > results.txt ⏎

(base) C:\Users\rinsaka\Documents\python>

次に,出力されたファイルの中身を確認します.なお,コマンドプロンプトの type コマンド代わりとして,PowerShell では Get-Content コマンドレットやそのエイリアス(別名)である gccattype などとなり,Bash シェルでは cat コマンドを利用すれば良いでしょう.

(base) C:\Users\rinsaka\Documents\python>type results.txt ⏎
r = 5
s = 31.4159

(base) C:\Users\rinsaka\Documents\python>

すでに存在するファイルに追記したい場合は > 出力ファイル名 の代わりに >> 出力ファイル名 を利用します.

(base) C:\Users\rinsaka\Documents\python>python circle.py >> results.txt ⏎

(base) C:\Users\rinsaka\Documents\python>type results.txt ⏎
r = 5
s = 31.4159
r = 5
s = 31.4159

(base) C:\Users\rinsaka\Documents\python>

次は,実行時にエラーが発生するように,未定義の変数 z を表示させるプログラムを作成します.

circle2.py
import numpy as np

r = 5
s = 2 * r * np.pi
print(f"r = {r}")
print(f"s = {s:7.4f}")
print(f"z = {z}")

上のプログラム (circle2.py) を実行するとエラーで強制終了します.

(base) C:\Users\rinsaka\Documents\python>python circle2.py ⏎
r = 5
s = 31.4159
Traceback (most recent call last):
  File "C:\Users\rinsaka\Documents\python\circle2.py", line 7, in <module>
    print(f"z = {z}")
                 ^
NameError: name 'z' is not defined

(base) C:\Users\rinsaka\Documents\python>

同じプログラムの実行結果を results.txt に書き込んでみます.実行結果の出力は「標準出力」と「標準エラー出力」の2種類があり,「標準出力」のみが results.txt に書き込まれていることがわかります.一方で「標準エラー出力」は引き続き画面に表示されています.

(base) C:\Users\rinsaka\Documents\python>python circle2.py > results.txt ⏎
Traceback (most recent call last):
  File "C:\Users\rinsaka\Documents\python\circle2.py", line 7, in <module>
    print(f"z = {z}")
                 ^
NameError: name 'z' is not defined

(base) C:\Users\rinsaka\Documents\python>type results.txt ⏎
r = 5
s = 31.4159

(base) C:\Users\rinsaka\Documents\python>

「標準エラー出力」をファイルに書き出したい場合は 2> 出力ファイル名 のように指定します.次のようにすると「標準出力」は results.txt に,「標準エラー出力」は error.txt に書き出すことができます.

(base) C:\Users\rinsaka\Documents\python>python circle2.py > results.txt 2> error.txt ⏎

(base) C:\Users\rinsaka\Documents\python>type error.txt ⏎
Traceback (most recent call last):
  File "C:\Users\rinsaka\Documents\python\circle2.py", line 7, in <module>
    print(f"z = {z}")
                 ^
NameError: name 'z' is not defined

(base) C:\Users\rinsaka\Documents\python>

なお,「標準出力」を 1> 出力ファイル名 のように明示的に指定することも可能です.

(base) C:\Users\rinsaka\Documents\python>python circle2.py 1> results.txt 2> error.txt ⏎

(base) C:\Users\rinsaka\Documents\python>

目次に戻る