Python的常用基礎模塊之sys模塊詳解
一、sys模塊介紹
1.1 什么是 Python 解釋器
當編寫 Python 代碼時,通常都會得到一個包含 Python 代碼的以 .py
為擴展名的文件。
要運行編寫的代碼,就需要使用 Python 解釋器去執(zhí)行 .py
文件。
因此,Python 解釋器就是用來執(zhí)行 Python 代碼的一種工具。常見的 Python 解釋器有以下幾種:
- CPython:Python 的官方解釋器。
當我們從 Python 官方網站下載并安裝好 Python 后,就直接獲得了 CPython 解釋器,該解釋器是使用 C 語言開發(fā)的,所以叫 CPython。
我們在 CMD 命令窗口中運行 python 命令就是啟動 CPython 解釋器,如下圖所示:
- IPython :IPython 是基于 CPython 之上的一個交互式解釋器,它執(zhí)行 Python 代碼的功能和 CPython 是完全一樣的,唯一的區(qū)別是:CPython 用
>>>
作為提示符,而 IPython 用In[ 序號]:
作為提示符。
- PyPy :PyPy 解釋器的目標是執(zhí)行速度,它采用 JIT 技術,對 Python 代碼進行動態(tài)編譯,所以可以顯著提高 Python 代碼的執(zhí)行速度。
- Jython:運行在 Java 平臺上的 Python 解釋器,可以直接把 Python 代碼編譯成 Java 字節(jié)碼執(zhí)行。
- IronPython :運行在微軟
.NET
平臺上的 Python 解釋器,可以直接把 Python 代碼編譯成.NET
的中間代碼。
1.2 sys 模塊的作用
sys 模塊提供訪問 Python 解釋器使用或維護的屬性,以及與 Python 解釋器進行交互的方法。
簡單來講,sys 模塊負責程序與 Python 解釋器的交互,并提供了一系列的屬性和方法,用于操控 Python 運行時的環(huán)境。
在 Python 程序中使用 sys 模塊,首先需要使用 import 導入,代碼如下:
import sys
導入 sys 模塊后,就可以使用該模塊提供的屬性和方法了。
二、常用方法及屬性介紹
2.1 modules屬性
將模塊名稱映射到已加載模塊的字典
modules 屬性返回一個將模塊名稱映射到已加載模塊的字典。語法格式如下:
sys.modules # 返回值:返回一個字典
使用 modules 屬性獲取本機所有已安裝的模塊及所在模塊文件,代碼如下:
import sys for key, value in sys.modules.items(): # 遍歷所有模塊字典 print(f'{key}:{value}') # 打印模塊及所在模塊文件
程序運行結果如下:
使用 modules 屬性獲取 os 模塊的來源,代碼如下:
import sys # <module 'os' from 'd:\\developsoftware\\python37\\lib\\os.py'> print(sys.modules["os"])
使用 modules 對象的 keys() 方法可以獲取到所有導入的模塊列表,代碼如下:
import sys print('模塊列表:') for i in sys.modules.keys(): # 遍歷模塊列表 print('' + i) # 打印模塊
2.2 getdefaultencoding()方法
獲取默認字符串編碼名稱
getdefaultencoding() 方法用于返回當前默認字符串編碼的名稱,語法格式如下:
sys.getdefaultencoding()
參數(shù)說明:返回值:返回類似 ascii、utf-8 或者 gbk 等的字符串,具體的值根據(jù) site.py
模塊中設置的默認編碼而定。
使用 getdefaultencoding() 方法獲取本地 Python 解釋器使用的默認字符串編碼,代碼如下:
import sys print(sys.getdefaultencoding()) # utf-8
2.3 exit()方法
退出Python
exit() 方法用于退出 Python 解釋器,即退出正在運行的程序。語法格式如下:
sys.exit([arg])
參數(shù)說明:
- arg :可選參數(shù),該參數(shù)是一個整數(shù),表示退出狀態(tài)。0 表示正常退出,非 0 表示異常終止。如果指定為一個非整數(shù)值,則將它打印到 sys.stderr,并使用退出碼 1。
- 返回值:返回退出碼,0 表示正常退出,1 表示異常退出。
說明:arg 參數(shù)的取值范圍通常在 0~127 范圍內,否則會產生不確定的結果。
正常退出程序的代碼如下:
import sys print(11) sys.exit(0)
程序運行結果如下:
通過為 exit() 方法指定非 0 參數(shù)異常終止程序,代碼如下:
import sys print(11) sys.exit(1) print(22)
程序運行結果如下:
2.4 path屬性
指定模塊搜索路徑
path 屬性用于獲取一個字符串列表,它指定模塊的搜索路徑。在程序啟動時,此列表的第一項 path[0] 通常是 Python 腳本(.py 文件) 所在的目錄。如果腳本目錄不可用(例如,交互式調用解釋器或者從標準輸入讀取腳本),則 path[0] 為空字符串,它指示 Python 首先搜索當前目錄中的模塊。語法格式如下:
sys.path
使用 path 屬性獲取 Python 解釋器的模塊搜索路徑,并遍歷輸出,代碼如下:
import sys for i in sys.path: # 遍歷所有路徑列表 print(i) # 打印遍歷到的路徑
程序運行結果如下:
E:\Code\lesson\python-package
E:\Code\lesson
D:\DevelopSoftware\PyCharm2021.3.3\PyCharm 2021.3.3\plugins\python\helpers\pycharm_display
d:\developsoftware\python37\python37.zip
d:\developsoftware\python37\DLLs
d:\developsoftware\python37\lib
d:\developsoftware\python37
E:\Code\scrapy_study\venv
E:\Code\scrapy_study\venv\lib\site-packages
D:\DevelopSoftware\PyCharm2021.3.3\PyCharm 2021.3.3\plugins\python\helpers\pycharm_matplotlib_backend
使用 path 屬性的 append() 方法向模塊搜索路徑中添加 ./module
,然后遍歷輸出最新的模塊搜索路徑,代碼如下:
import sys sys.path.append("./module") # 添加模塊搜索路徑
2.5 argv屬性
程序命令行參數(shù)列表
argv 屬性表示傳遞給 Python 腳本的命令行參數(shù)列表。argv[0] 是腳本名稱(取決于操作系統(tǒng)是否為完整路徑名)。語法格式如下:
sys.argv
通過使用 argv 屬性獲取 Python 解釋器的命令行參數(shù)列表,并使用 argv[0] 獲取 Python 腳本的完整路徑,代碼如下:
通過使用 os 模塊的 fsencode() 方法獲取命令行參數(shù)的原始字節(jié),代碼如下:
import sys import os for arg in sys.argv: print(os.fsencode(arg))
程序運行結果如下:
b'E:/Code/lesson/python-package/demo5_sys.py'
注意:在 Unix 系統(tǒng)中,命令行參數(shù)是從 OS 傳遞的字節(jié)。Python 使用文件系統(tǒng)編碼和 surrogateescape 錯誤處理程序對它們進行解碼。
2.6 platform屬性
獲取系統(tǒng)標識符
platform 屬性返回一個表示系統(tǒng)標識符的字符串。語法格式如下:
sys.platform
操作系統(tǒng)及對應的 platform 值如下表所示:
用 platform 屬性判斷當前系統(tǒng)平臺為哪個平臺,代碼如下:
import sys if sys.platform == 'win32': print('當前是Windows平臺') elif sys.platform == 'linux': print('當前是Linux平臺') elif sys.platform == 'darwin': print('當前是Mac平臺')
筆者使用的是 Windows 平臺,故程序運行結果如下:
到此這篇關于Python的常用基礎模塊之sys模塊詳解的文章就介紹到這了,更多相關Python的sys模塊內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
anaconda中Conda創(chuàng)建虛擬環(huán)境的實現(xiàn)步驟
在Anaconda中,可以使用conda命令來創(chuàng)建和管理虛擬環(huán)境,本文主要介紹了anaconda中Conda創(chuàng)建虛擬環(huán)境的實現(xiàn)步驟,具有一定的參考價值,感興趣的可以了解一下2023-12-12實例講解Python腳本成為Windows中運行的exe文件
在本篇文章里小編給大家分享了關于Python腳本成為Windows中運行的exe文件的相關知識點內容,有興趣的朋友們學習下。2019-01-01python實現(xiàn)簡單socket程序在兩臺電腦之間傳輸消息的方法
這篇文章主要介紹了python實現(xiàn)簡單socket程序在兩臺電腦之間傳輸消息的方法,涉及Python操作socket的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03python使用ctypes庫調用DLL動態(tài)鏈接庫
這篇文章主要介紹了python如何使用ctypes庫調用DLL動態(tài)鏈接庫,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-10-10