.has-very-dark-gray-color{color:#313131}.has-small-font-size{font-size:13px}.has-normal-font-size,.has-regular-font-size{font-size:16px}.has-medium-font-size{font-size:20px}.has-large-font-size{font-size:36px}.has-huge-font-size,.has-larger-font-size{font-size:42px}.has-text-align-center{text-align:center}.has-text-align-left{text-align:left}.has-text-align-right{text-align:right}業績から株式銘柄の良さを調べています。決算分析のコード例は『XBRLまとめ』からどうぞ。2018.08.06Pythonでログをファイルに出力する簡単な方法です。モジュールを使用して、『動作ログ』や『エラーログ』をファイルに記録します。ログには、『時刻情報』や『実行中の関数名』も付けられます。たくさんのXBRLを読み込んでいると、やはり、いろいろなエラーに遭遇します。XBRLのzipが破損していたり、タグ名に誤りがあったり、自身のプログラムにまずいところがあったり。いった例外やエラーは、とりあえずログファイルに記録しておいて、あとからひとつずつ対処していくことになると思います。そのためのパイソンコード例を紹介します。モジュールを使うのが一般的です。モジュールがあります。ここでは、ログの「画面表示」と「ファイル出力」をしてくれる、簡単なロガーを作って使ってみます。決算分析システムで使っているロガーも、このような簡単なロガーがほとんどです。公式マニュアルのページです。用ロギング機能https://docs.python.jp/3/library/logging.htmlprint()に相当するのが、ストリームハンドラだけのロガーです。open()でテキスト出力に相当するのが、ファイルハンドラーだけのロガーです。ストリームハンドラとファイルハンドラを追加すると、画面に出力しながらファイルに出力するロガーになります。簡単なロガーだけで十分ロガーは、簡単なもので十分でした。ロガーの作り方は、お決まりのパターンでした。あとは、print()の代わりに、lg.debug()などを使います。ロガーなんて使わず、自前でファイルを開いてログを記録するのでも、もちろんOKです。ログ出力の手作りです。一緒に書くことになります。それらを関数にまとめて、便利にしようと作っていたら、結局、ロガーモジュールを作るのと同じになりました。最初からloggingモジュールの簡単なところだけ使うのがおすすめです。必要に応じて、徐々に作り込んでいけば良いと思います。Pythonでログ出力するコード例ファイル名を指定して、ファイルにログを出力するサンプルです。Pythonの実行ログをとるのに使います。ロガー終了の例ロガーを作って、記録して、最後にロガーを終了(ロガーを削除)するコード例です。ロガーの作成ですが、画面出力のための『ストリームハンドラ』と、ファイル出力のための『ファイルハンドラ』を追加します。ファイルハンドラには、ファイルパス・書き込みモード・エンコーディングなどを指定します。ログ出力先を指定します。関しては、特に必要ないようでした。必要性について『通常は手動で実行する必要は無い』という旨の説明が追加されていました。登録されるから、通常は手動で実行する必要はないです。』ということのようです。以下のコード例では、ハンドラを外して閉じたり、シャットダウンを呼んだりしていますが、無くても大丈夫でした。問題は起こっていないです。ロガーに追加したハンドラを閉じてリムーブ。[::-1]で逆順にして、リストの後ろからリムーブしていく。main()実行結果です。'logging.StreamHandler'>endそして「ログファイル」です。文字列が記録されています。渡した文字列に続けてスタックトレースを出力してくれます。取得して、logger.debug()に渡すことでも記録できます。ロガーの作成を関数化して簡単に使うPythonのloggerでファイル出力するコードです。ロギングモジュールから作るロガーですが、欲しい機能って、だいたい同じだったりするんですね、どのプログラムでも。上記のようなお決まりのロガーは、関数化して使っています。以下は、ロガーの作成部分を関数化したコード例です。追加すると、画面表示だけを行うロガーができます。ログの保存先などの指定も不要です。同じ機能になりますが、表示が速いというメリットがありました。画面表示したほうが、目に見えて高速でした。文字がサラサラと流れていきます。自分は、プロンプト画面にたくさん情報表示するようなPythonプログラムでは、高速化のために、ストリームハンドラーだけを追加したロガーを使ったりしています。追加すると、ファイル記録だけを行うロガーができます。プロンプト画面には何も表示されません。ファイルにだけログが出力されます。定番は『時刻情報』と『関数名』の自動付加ですね。以下のPython公式マニュアルから、使いたいフォーマットを調べて設定します。指定すると、ログを記録した時の時刻が自動で追加されます。引数に以下を渡します。指定すると、ログを記録したところの関数名が自動で追加されます。引数に以下を渡します。%(message)s')時刻情報と関数名を出力ログに『時刻情報』と『実行中の関数名』を同時に追加することもできます。引数に以下を渡します。属性』から使いたいフォーマットを選べばOKです。Pythonのログをローテーションして記録する方法ログのファイルサイズを指定して、分割しながら記録していく方法です。ログファイルが巨大化すると開けなくなりますので、指定したサイズになったら新しいファイルに書き込む必要があります。Pythonの公式マニュアルがわかりやすかったです。ファイルの最大サイズを渡して使います。普通、1以上を設定します。backupCountの数だけ、古いログファイルに連番が付いて残ります。ログファイルがmaxBytesを超えそうになったら、自動的にファイルを閉じて、新しいログファイルに記録してくれます。ログファイルのローテーション処理を手作りしなくていいのは嬉しいです。米国企業のグラフが描けましたので、サブサイトを作って公開しました。業績サマリ・科目別グラフ・発行済株式数などのグラフがご覧いただけます。海外上場企業の業績をチェックするのに役立つと思います。データフレームに変換します。圧縮するコード例です。読み込むためのライブラリです。株式分割や株式併合を実施した企業は株価が不連続になります。その株価を調整する計算方法を紹介します。調整後終値と呼ばれる金額もこの計算方法で求まります。XBRLの勘定科目タグ集約リスト米国企業の業績チャートを描くために作ったタグリストを公開します。売上や利益の全体的な合計値ですね、これをすべての企業から取得するのを目指して作りました。