2017-07-19 21 views
0

私は、プログラムの実行のメタデータを自動的に収集するパッケージを作成しています。これには、プログラムの実行が開始され、終了する時刻も含まれます。Pythonインタプリタの起動時間

Python標準ライブラリは、フックを公開して、インタプリタの終了時にコードが自動的にatexit.registerで実行されるようにします。これを使って終了時間を記録すれば十分です。

インタプリタの実行が終了すると、およそ、対応する開始時刻はほぼインタプリタの実行開始時刻になります。

この時間はPythonモジュール内で判断できますか?

+1

実行するコードを登録するコードもコードです。インタプリタが起動する前にコードを実行することはできません。だから、何らかの時間旅行がなくても、それがどうなるかはわかりません... IMOを得ることができるのは、モジュールに時間を記録して、そのモジュールをロードオーダーの非常に早い段階にすることです。 – Amadan

+0

@Amadan確かに、それは正確な打ち上げ時間でなければ大丈夫です。私が探しているのは、インタラクティブなインタプリタのためのPYTHONSTARTUPのようなフックか、sys.argvのような変数です。理想的には、記録された時間は、ソースコード内のパッケージインポートの発生とは独立している必要があります。 –

答えて

0

答えhttps://stackoverflow.com/a/4559733の質問How to retrieve the process start time (or uptime) in pythonにPythonプロセスの開始時刻を取得するパッケージpsutilが見つかりました。答えは使用方法を示します。

これはクロスプラットフォームであるという利点がありますが、依存関係が導入されるという欠点があります。それは私の使用例では受け入れられます。私のパッケージは、最初にpsutilを使用しようとすることができ、それを失敗して、近似として現在の時刻に戻ります。

私はこの解決策を他の人に役立てることができると思っていますが、Pythonの組み込み関数や標準を使ってPythonインタプリタの開始時間を取得する方法があるかどうかを知りたいと思っていますとしょうかん。

関連する問題