1. 程式人生 > >python常用模組——sys

python常用模組——sys

sys模組

常用的方法:

1. sys.argv

    命令列引數List,第一個元素是程式本身路徑

2. sys.exit(n)

    退出程式,指定返回狀態碼n,正常退出時exit(0)

3. sys.version

    獲取Python解釋程式的版本資訊

4. sys.path

    返回模組的搜尋路徑,初始化時使用PYTHONPATH環境變數的值;它是一個列表,故擁有列表的方法;

5. sys.platform

    返回作業系統平臺名稱

6. sys.exec_prefix

    查詢當前python的安裝目錄,並返回絕對路徑

7. sys.executable

    查詢當前python的直譯器程式,並返回絕對路徑

8. getsizeof(...)

    getsizeof(object, default) -> int 以位元組(b)為單位返回物件的大小。1B=8b

9. sys.stdout.write('please:')

    和print差不多;但是這個會統計字元個數;字母、數字、特殊符號、漢字都是算一個;
    比如:
    import sys
    val = sys.stdout.write('please:')   
    print(val)                          # 在同一行輸出 please:7     因為沒有\n換行,所有列印在了一行;

10. sys.stdin.readline()

    讀取輸入的內容,直到換行或者遇到EOF;如果沒有輸入,直接EOF,則返回一個空字串;
    例如:
    import sys
    val = sys.stdin.readline()    # 執行到這裡,會等待互動式輸入內容,並賦值給val;
    print(val)             

更多方法: https://docs.python.org/3/library/sys.html

動態資訊:

sys.argv

返回一個列表;argv[0]是指令碼本身(如果執行時帶有路徑則包含路徑),argv[1]是第一個引數......

sys.path

模組搜尋路徑;path[0]是當前指令碼所在的路徑;

sys.modules

裝載的模組的一個字典;

sys.displayhook()

呼叫以在互動會話中顯示結果;用法再補充吧;

sys.excepthook()

處理異常會用到。用法再補充吧;

sys.stdin

列印標準輸入的屬性;

sys.stdout

列印標準輸出的屬性;

sys.stderr

列印標準錯誤的屬性;

靜態資訊:

sys.builtinmodulenames

以元組形式返回內建模組名稱;

sys.copyright

列印copyright資訊;沒用;

sys.exec_prefix

查詢當前python的安裝目錄,並返回絕對路徑

sys.executable

查詢當前python的直譯器程式,並返回絕對路徑

sys.float_info

列印浮點型別有關資訊

sys.floatreprstyle

以後補充吧;

sys.hash_info

列印雜湊型別有關資訊

sys.hexversion

列印單個整數的編碼資訊

sys.implementation

列印python實現的資訊

sys.int_info

列印整型的資訊;

sys.maxsize

列印容器支援的最大的長度;

sys.maxunicode

unicode編碼的最大值

sys.platform

列印平臺資訊,如linux、win32等

sys.prefix

列印當前python的安裝目錄;打印出絕對路徑;

sys.thread_info

列印執行緒實現的資訊;

sys.version

列印python直譯器的具體版本;

sys.version_info

以元組形式列印python直譯器的版本;

sys.dllhandle

列印python dll的控制代碼;

sys.winver

列印python 庫的版本

方法:

call_tracing(...)

call_tracing(func, args) -> object
呼叫函式,並啟用追蹤;用法再補充;

callstats(...)

callstats() -> tuple of integers
如果定義了call_profile,當Python被構建時,返回一個元組的函式呼叫統計。否則,沒有返回。返回元組的內容詳見官方;

displayhook(...)

displayhook(object) -> None
列印一個物件並將它儲存在內建sys.stdout。用法再補充;

exc_info(...)

exc_info() -> (type, value, traceback)
返回最近捕獲的異常的資訊。

excepthook(...)

excepthook(exctype, value, traceback) -> None
通過顯示它在sys.stderr回溯處理異常

exit(...)

exit([status])
指定退出狀態;如果沒有指定,則退出0表示成功;退出1表示失敗;如果指定了整數,則退出為該整數;如果指定了物件,則列印該物件;

getasyncgenhooks(...)

get_asyncgen_hooks()
再補充吧;

getcoroutinewrapper(...)

get_coroutine_wrapper()
這個也再補充吧

getallocatedblocks(...)

getallocatedblocks() -> integer
返回當前分配的記憶體塊數,而不管它們的大小。

getcheckinterval(...)

getcheckinterval() -> current check interval; see setcheckinterval().
sys.getcheckinterval    sys.setcheckinterval   執行緒切換前python指令執行條數(GIL) 

getdefaultencoding(...)

getdefaultencoding() -> string
獲取當前預設的字串編碼;

getfilesystemencodeerrors(...)

getfilesystemencodeerrors() -> string
返回用於轉換Unicode檔名的作業系統檔案的錯誤模式。

getfilesystemencoding(...)

getfilesystemencoding() -> string
返回使用的編碼轉換成Unicode檔名的作業系統檔名。

getprofile(...)

getprofile()
根據sys.setprofile返回分析函式集。

getrecursionlimit(...)

getrecursionlimit()
返回遞迴限制的當前值,即Python直譯器堆疊的最大深度。此限制防止無限遞迴導致C堆疊溢位和崩潰的Python。

getrefcount(...)

getrefcount(object) -> integer
返回物件的引用計數。

getsizeof(...)

getsizeof(object, default) -> int
以位元組(b)為單位返回物件的大小。1B=8b

getswitchinterval(...)

getswitchinterval() -> current thread switch interval; see setswitchinterval().

gettrace(...)

gettrace()
根據sys.settrace返回全域性除錯跟蹤功能設定。

getwindowsversion(...)

getwindowsversion()
獲取當前windows版本資訊;僅在windows下使用。

intern(...)

intern(string) -> string
以後補充;

is_finalizing(...)

is_finalizing()
如果python退出,則返回True.

setasyncgenhooks(...)

set_asyncgen_hooks(*, firstiter=None, finalizer=None)
設定一個非同步生成器的物件

setcoroutinewrapper(...)

set_coroutine_wrapper(wrapper)
設定一個協同物件包裝。

setcheckinterval(...)

setcheckinterval(n)
告訴Python直譯器每n個指令檢查非同步事件。這也會影響執行緒切換的頻繁發生。

setprofile(...)

setprofile(function)
設定剖析功能。它將在每個函式呼叫和返回時呼叫。

setrecursionlimit(...)

setrecursionlimit(n)
將Python直譯器堆疊的最大深度設定為n。這個限制防止無限遞迴導致C堆疊溢位和崩潰Python。最大可能的限制是依賴於平臺的。

setswitchinterval(...)

setswitchinterval(n)
在Python直譯器中設定理想的執行緒切換延遲,如果直譯器執行長的不間斷程式碼序列(這是特定於實現的和工作量相關的),那麼交換執行緒的實際頻率可能會更低。
引數必須在秒內代表期望的開關延遲,典型值是0.005(5毫秒)。

settrace(...)

settrace(function)
設定全域性除錯跟蹤功能。它將在每個函式呼叫時被呼叫。