python で tty ターミナルに繋がっているかどうかを調べる2022年03月25日 08時39分48秒

仕事で書いた Python プログラムはサーバとして起動させられる。 その為、基本的に標準入出力はターミナルに繋がっていない。 またその為、標準出力への書き出しは、色々と問題の原因になるので、基本的に何かを出力したいのなら logging で行う。

ログファイルは基本的に開くのが面倒臭い。どこにログファイルが開かれるかを調べたり、設定によっては日時を含むファイル名で、起動する毎に探さなければいけない。特にデバッグ時に有用な情報は print 関数で標準出力に送りたい。

開発、デバッグ時はわざわざデーモンとして起動せず、手動でターミナルから起動する。 そこで、標準入力がターミナルからの時だけ print をすると、平常運用時は何も出力しないが、開発時にだけ出力する事が出来る。

import sys

if sys.stdin.isatty():
    print( "stdin" )
if sys.stdout.isatty():
    print( "stdout" )
sys モジュールを使って調べられる。stdin と stdout のどちらでも良いが、stdin の方が堅実だろう。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2022/03/25/9475510/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。