Python print 出力先

PC

Pythonのプログラムを走らせるときの標準出力の出力先として、コマンドラインとファイルを同時に選ぶためのTipsです。

ニーズはバッチがうまく走らなかったプログラムをリアルタイムで確認したかったところから。

自分の所有物件の周辺の賃貸付状況を確認するために、Suumoで周辺のエリアの募集情報をごそっと抜き出すプログラムを夜間バッチで走らせているのですが、時折エラーで終了していることがありました。

夜間バッチでの経緯は、そのプログラムでは標準出力をテキストファイルに吐き出させているのでそれを確認すれば良いのですが、デバッグの作業でそのプログラムをリアルタイムで走らせているときには、実行が終わるまで状況を確認できない、ということがありました。
通常だとprint文での出力をコマンドライン上にするかファイルにするかの択一になってしまうという難点があるのですね。

で、両方同時に吐き出すような仕様にできないかな、ということでそういうプログラムを組んでみた、というわけです。
大元のプログラムはこんな感じです。

def job_rent_suumo():
    logfile = CE.downfolder + 'suumo.txt'
    sys.stdout = CE.Logger(logfile)
 
    print("賃貸:処理開始")
    dwn_suumo()
    print("賃貸:処理完了")

stdoutの吐き出し先としてLoggerというclassにしています。
そしてそのLoggerの中身はこんな感じです。

class Logger:

    def __init__(self, filename):
        self.console = sys.stdout
        self.file = open(filename, 'w')

    def write(self, message):
        self.console.write(message)
        self.file.write(message)

    def flush(self):
        self.console.flush()
        self.file.flush()

これで、ファイルもコマンドラインも標準出力の出し先となりました。

Python本

徹底攻略Python 3 エンジニア認定[基礎試験]問題集 [ 株式会社ビープラウド ]
徹底攻略Python 3 エンジニア認定[基礎試験]問題集 [ 株式会社ビープラウド ] 2,640円(税込)【送料込】

楽天ブックス

株式会社ビープラウド 一般社団法人Pythonエンジニア育成推進協会 インプレステッテイコウリャクパイソンスリーエンジニアニンテイキソシケンモンダイシュウ カブシキガイシャビープラウド イッパンシャダ

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ) [ 国本 大悟 ]
スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ) [ 国本 大悟 ] 2,750円(税込)【送料込】

楽天ブックス

スッキリわかる入門シリーズ 国本 大悟 須藤 秋良 インプレススッキリワカルパイソンニュウモンダイニハン クニモト ダイゴ スドウ アキヨシ 発行年月:2023年11月06日 予約締切日:2023年0

Python[完全]入門 [ 松浦健一郎 ]
Python[完全]入門 [ 松浦健一郎 ] 3,190円(税込)【送料込】

楽天ブックス

松浦健一郎 司ゆき SBクリエイティブパイソンカンゼンニュウモン マツウラケンイチロウ ツカサユキ 発行年月:2021年01月25日 予約締切日:2021年01月24日 ページ数:592p サイズ:単

PythonでExcel、メール、Webを自動化する本 [ 中嶋英勝 ]
PythonでExcel、メール、Webを自動化する本 [ 中嶋英勝 ] 2,398円(税込)【送料込】

楽天ブックス

中嶋英勝 SBクリエイティブパイソンデエクセルメールウェブヲジドウカスルホン ナカジマヒデカツ 発行年月:2020年09月23日 予約締切日:2020年07月22日 ページ数:320p サイズ:単行本

Pythonスタートブック増補改訂版 いちばんやさしいパイソンの本/バージョン3に完全対 [ 辻真吾 ]
Pythonスタートブック増補改訂版 いちばんやさしいパイソンの本/バージョン3に完全対 [ 辻真吾 ] 2,750円(税込)【送料込】

楽天ブックス

いちばんやさしいパイソンの本/バージョン3に完全対 辻真吾 技術評論社パイソン スタート ブック ツジ,シンゴ 発行年月:2018年04月 予約締切日:2018年04月11日 ページ数:351p サイ

楽天ウェブサービスセンター
タイトルとURLをコピーしました