欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python的常用基礎(chǔ)模塊之sys模塊詳解

 更新時(shí)間:2023年08月01日 11:06:30   作者:Amo Xiang  
這篇文章主要介紹了Python的常用基礎(chǔ)模塊之sys模塊詳解,sys 模塊提供訪問(wèn) Python 解釋器使用或維護(hù)的屬性,以及與 Python 解釋器進(jìn)行交互的方法,需要的朋友可以參考下

一、sys模塊介紹

1.1 什么是 Python 解釋器

當(dāng)編寫(xiě) Python 代碼時(shí),通常都會(huì)得到一個(gè)包含 Python 代碼的以 .py 為擴(kuò)展名的文件。

要運(yùn)行編寫(xiě)的代碼,就需要使用 Python 解釋器去執(zhí)行 .py 文件。

因此,Python 解釋器就是用來(lái)執(zhí)行 Python 代碼的一種工具。常見(jiàn)的 Python 解釋器有以下幾種:

  • CPython:Python 的官方解釋器。

當(dāng)我們從 Python 官方網(wǎng)站下載并安裝好 Python 后,就直接獲得了 CPython 解釋器,該解釋器是使用 C 語(yǔ)言開(kāi)發(fā)的,所以叫 CPython。

我們?cè)?CMD 命令窗口中運(yùn)行 python 命令就是啟動(dòng) CPython 解釋器,如下圖所示:

在這里插入圖片描述

  • IPython :IPython 是基于 CPython 之上的一個(gè)交互式解釋器,它執(zhí)行 Python 代碼的功能和 CPython 是完全一樣的,唯一的區(qū)別是:CPython 用 >>> 作為提示符,而 IPython 用 In[ 序號(hào)]: 作為提示符。

在這里插入圖片描述

  • PyPy :PyPy 解釋器的目標(biāo)是執(zhí)行速度,它采用 JIT 技術(shù),對(duì) Python 代碼進(jìn)行動(dòng)態(tài)編譯,所以可以顯著提高 Python 代碼的執(zhí)行速度。
  • Jython:運(yùn)行在 Java 平臺(tái)上的 Python 解釋器,可以直接把 Python 代碼編譯成 Java 字節(jié)碼執(zhí)行。
  • IronPython :運(yùn)行在微軟 .NET 平臺(tái)上的 Python 解釋器,可以直接把 Python 代碼編譯成 .NET 的中間代碼。

1.2 sys 模塊的作用

sys 模塊提供訪問(wèn) Python 解釋器使用或維護(hù)的屬性,以及與 Python 解釋器進(jìn)行交互的方法。

簡(jiǎn)單來(lái)講,sys 模塊負(fù)責(zé)程序與 Python 解釋器的交互,并提供了一系列的屬性和方法,用于操控 Python 運(yùn)行時(shí)的環(huán)境。

在 Python 程序中使用 sys 模塊,首先需要使用 import 導(dǎo)入,代碼如下:

import sys

導(dǎo)入 sys 模塊后,就可以使用該模塊提供的屬性和方法了。

二、常用方法及屬性介紹

2.1 modules屬性

將模塊名稱(chēng)映射到已加載模塊的字典

modules 屬性返回一個(gè)將模塊名稱(chēng)映射到已加載模塊的字典。語(yǔ)法格式如下:

sys.modules  # 返回值:返回一個(gè)字典

使用 modules 屬性獲取本機(jī)所有已安裝的模塊及所在模塊文件,代碼如下:

import sys
for key, value in sys.modules.items():  # 遍歷所有模塊字典
    print(f'{key}:{value}')  # 打印模塊及所在模塊文件

程序運(yùn)行結(jié)果如下:

在這里插入圖片描述

使用 modules 屬性獲取 os 模塊的來(lái)源,代碼如下:

import sys
# <module 'os' from 'd:\\developsoftware\\python37\\lib\\os.py'>
print(sys.modules["os"])

使用 modules 對(duì)象的 keys() 方法可以獲取到所有導(dǎo)入的模塊列表,代碼如下:

import sys
print('模塊列表:')
for i in sys.modules.keys():  # 遍歷模塊列表
    print('' + i)  # 打印模塊

2.2 getdefaultencoding()方法

獲取默認(rèn)字符串編碼名稱(chēng)

getdefaultencoding() 方法用于返回當(dāng)前默認(rèn)字符串編碼的名稱(chēng),語(yǔ)法格式如下:

sys.getdefaultencoding()

參數(shù)說(shuō)明:返回值:返回類(lèi)似 ascii、utf-8 或者 gbk 等的字符串,具體的值根據(jù) site.py 模塊中設(shè)置的默認(rèn)編碼而定。

使用 getdefaultencoding() 方法獲取本地 Python 解釋器使用的默認(rèn)字符串編碼,代碼如下:

import sys
print(sys.getdefaultencoding())  # utf-8

2.3 exit()方法

退出Python

exit() 方法用于退出 Python 解釋器,即退出正在運(yùn)行的程序。語(yǔ)法格式如下:

sys.exit([arg])

參數(shù)說(shuō)明:

  • arg :可選參數(shù),該參數(shù)是一個(gè)整數(shù),表示退出狀態(tài)。0 表示正常退出,非 0 表示異常終止。如果指定為一個(gè)非整數(shù)值,則將它打印到 sys.stderr,并使用退出碼 1。
  • 返回值:返回退出碼,0 表示正常退出,1 表示異常退出。

說(shuō)明:arg 參數(shù)的取值范圍通常在 0~127 范圍內(nèi),否則會(huì)產(chǎn)生不確定的結(jié)果。

正常退出程序的代碼如下:

import sys
print(11)
sys.exit(0)

程序運(yùn)行結(jié)果如下:

在這里插入圖片描述

通過(guò)為 exit() 方法指定非 0 參數(shù)異常終止程序,代碼如下:

import sys
print(11)
sys.exit(1)
print(22)

程序運(yùn)行結(jié)果如下:

在這里插入圖片描述

2.4 path屬性

指定模塊搜索路徑

path 屬性用于獲取一個(gè)字符串列表,它指定模塊的搜索路徑。在程序啟動(dòng)時(shí),此列表的第一項(xiàng) path[0] 通常是 Python 腳本(.py 文件) 所在的目錄。如果腳本目錄不可用(例如,交互式調(diào)用解釋器或者從標(biāo)準(zhǔn)輸入讀取腳本),則 path[0] 為空字符串,它指示 Python 首先搜索當(dāng)前目錄中的模塊。語(yǔ)法格式如下:

sys.path

使用 path 屬性獲取 Python 解釋器的模塊搜索路徑,并遍歷輸出,代碼如下:

import sys
for i in sys.path:  # 遍歷所有路徑列表
    print(i)  # 打印遍歷到的路徑

程序運(yùn)行結(jié)果如下:

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] 是腳本名稱(chēng)(取決于操作系統(tǒng)是否為完整路徑名)。語(yǔ)法格式如下:

sys.argv

通過(guò)使用 argv 屬性獲取 Python 解釋器的命令行參數(shù)列表,并使用 argv[0] 獲取 Python 腳本的完整路徑,代碼如下:

在這里插入圖片描述

通過(guò)使用 os 模塊的 fsencode() 方法獲取命令行參數(shù)的原始字節(jié),代碼如下:

import sys
import os
for arg in sys.argv:
    print(os.fsencode(arg))

程序運(yùn)行結(jié)果如下:

b'E:/Code/lesson/python-package/demo5_sys.py'

注意:在 Unix 系統(tǒng)中,命令行參數(shù)是從 OS 傳遞的字節(jié)。Python 使用文件系統(tǒng)編碼和 surrogateescape 錯(cuò)誤處理程序?qū)λ鼈冞M(jìn)行解碼。

2.6 platform屬性

獲取系統(tǒng)標(biāo)識(shí)符

platform 屬性返回一個(gè)表示系統(tǒng)標(biāo)識(shí)符的字符串。語(yǔ)法格式如下:

sys.platform

操作系統(tǒng)及對(duì)應(yīng)的 platform 值如下表所示:

在這里插入圖片描述

用 platform 屬性判斷當(dāng)前系統(tǒng)平臺(tái)為哪個(gè)平臺(tái),代碼如下:

import sys
if sys.platform == 'win32':
    print('當(dāng)前是Windows平臺(tái)')
elif sys.platform == 'linux':
    print('當(dāng)前是Linux平臺(tái)')
elif sys.platform == 'darwin':
    print('當(dāng)前是Mac平臺(tái)')

筆者使用的是 Windows 平臺(tái),故程序運(yùn)行結(jié)果如下:

在這里插入圖片描述

到此這篇關(guān)于Python的常用基礎(chǔ)模塊之sys模塊詳解的文章就介紹到這了,更多相關(guān)Python的sys模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論