2017-07-19 76 views
0

我正在編寫一個程序包,它會自動收集程序執行元數據,包括開始和終止程序執行的時間。Python解釋器啓動時間

Python標準庫公開了一個掛鉤,讓代碼在解釋器終止時自動運行,通過atexit.register。使用它來記錄終止時間對於我的需求已足夠。由於這種方法大致記錄瞭解釋器執行時間終止的時間,我希望相應的開始時間大約是解釋器執行時間開始的時間。

是否可以在Python模塊中確定這個時間?

+1

註冊一些代碼來運行的代碼也是代碼。在解釋器啓動之前,您無法運行代碼。因此,如果沒有某種時間旅行,不知道如何可能......最接近你可以得到國際海事組織記錄在一個模塊中的時間,並打開該模塊在加載順序非常早... – Amadan

+0

@Amadan當然,如果它不是準確的發佈時間,那也沒關係。我在尋找的是像交互式解釋器的PYTHONSTARTUP之類的鉤子,或者像sys.argv這樣的變量。理想情況下,記錄的時間應獨立於源代碼中導入包的次數。 –

回答

0

我發現了一個包psutil,它提供了一種方法來獲取Python過程在這個回答中的起始時間https://stackoverflow.com/a/4559733到問題How to retrieve the process start time (or uptime) in python。用法在答案中給出。

這具有跨平臺的優點,但引入依賴的缺點。這對我的用例是可以接受的。我的軟件包可以首先嚐試使用psutil,如果失敗了,則以當前時間作爲近似值。

我在寫這個答案,因爲我認爲這個解決方案可以對其他人有所幫助,但是我仍然很想知道是否有一種方法可以通過Python內置插件或標準獲取Python解釋器啓動時間圖書館。