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[完全]入門 [ 松浦健一郎 ]
Python[完全]入門 [ 松浦健一郎 ] 3,190円(税込)【送料込】

楽天ブックス

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

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

楽天ブックス

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

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

楽天ブックス

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

Pythonでできる! 株価データ分析 [ 片渕彼富 ]
Pythonでできる! 株価データ分析 [ 片渕彼富 ] 2,970円(税込)【送料込】

楽天ブックス

片渕彼富 山田 祥寛 森北出版パイソンデデキルカブカデータブンセキ カタフチ カノトミ ヤマダ ヨシヒロ 発行年月:2023年01月21日 予約締切日:2022年12月03日 ページ数:256p サイ

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

楽天Kobo電子書籍ストア

<p>[この電子書籍は固定型レイアウトです。リフロー型と異なりビューア機能が制限されます]固定型レイアウトはページを画像化した構造であるため、ページの拡大縮小を除く機能は利用できません。また、モノクロ

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