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

Python學(xué)習(xí)之sys模塊使用教程詳解

 更新時(shí)間:2022年03月22日 08:34:54   作者:渴望力量的哈士奇  
sys模塊?與?os包一樣,也是對(duì)系統(tǒng)資源進(jìn)行調(diào)用。功能同樣也是非常豐富。本文將對(duì)sys模塊的一些簡(jiǎn)單且常用的函數(shù)進(jìn)行介紹,感興趣的可以學(xué)習(xí)一下

sys模塊 與 os包一樣,也是對(duì)系統(tǒng)資源進(jìn)行調(diào)用。功能同樣也是非常豐富,接下來我們會(huì)對(duì) sys模塊的一些簡(jiǎn)單且常用的函數(shù)進(jìn)行介紹,主要針對(duì)一些非功能性的函數(shù)與屬性來認(rèn)識(shí)一些不太常見的 Python 背后的事件。

sys 中的常用方法

函數(shù)名參數(shù)介紹舉例返回值
modules(屬性)將Python啟動(dòng)時(shí)加載的模塊集合起來并返回一個(gè)列表sys.modules列表
path(屬性)返回當(dāng)前Py的環(huán)境路徑(當(dāng)前py環(huán)境可以導(dǎo)入內(nèi)置、第三方包與函數(shù)的所在路徑)sys.path列表
exit(函數(shù))arg退出程序(執(zhí)行十行代碼,若在第二行插入sys.exit,則后面的代碼不會(huì)執(zhí)行)sys.exit(0)
getdefaultencoding獲取當(dāng)前系統(tǒng)級(jí)別的編碼格式(比如 utf-8)sys.getdefaultencoding()字符串
platform(函數(shù))獲取當(dāng)前系統(tǒng)平臺(tái)(如windows、Mac、linux)sys.platform()字符串
version(屬性)獲取當(dāng)前 Python 的版本sys.version字符串
argv(屬性)*args獲取程序外部的參數(shù),返回值是一個(gè)列表,實(shí)際開發(fā)中很常用的一個(gè)功能sys.argv列表

示例如下:

import sys


modules = sys.modules       # 將 sys 模塊的 modules 屬性 賦值給 modules 并打印輸出 Python啟動(dòng)時(shí)加載的模塊集合
print(modules)

# sys.exit(0)               # 取消注釋該行代碼,下方所有的代碼將不再執(zhí)行

path = sys.path
print(path)                 # 將 sys 模塊的 path 屬性 賦值給 path 并打印輸出 python 環(huán)境可以導(dǎo)入內(nèi)置、第三方包與函數(shù)的所在路徑

code = sys.getdefaultencoding()     # 將 sys 模塊 的 getdefaultencoding()函數(shù) 賦值給 code 并打印輸出當(dāng)前系統(tǒng)的編碼[utf-8]
print(code)

# >>> 執(zhí)行結(jié)果如下:
# >>> utf-8

print(sys.platform)         # 獲取當(dāng)前系統(tǒng)平臺(tái)(如windows、Mac、linux)

# >>> 執(zhí)行結(jié)果如下:
# >>> darwin

print(sys.version)          # 獲取當(dāng)前 Python 的版本

# >>> 執(zhí)行結(jié)果如下:
# >>> 3.8.7 (v3.8.7:6503f05dd5, Dec 21 2020, 12:45:15) 
# >>> [Clang 6.0 (clang-600.0.57)]

接下來的 sys.argv 可要好好說一說了。上文我們提到 argv 是獲取程序外部的參數(shù),返回值是一個(gè)列表。

說實(shí)話我一直在 python 解釋器、idea 運(yùn)行,試圖從結(jié)果發(fā)現(xiàn)它的用途,然而結(jié)果一直都是沒結(jié)果,也在網(wǎng)上查了許多資料,大部分都是轉(zhuǎn)裁和復(fù)制的。給的都是簡(jiǎn)明python教程上那個(gè)一長(zhǎng)串代碼的例子,說看了就明白了,可我看得暈頭轉(zhuǎn)向的還是沒真正明白,只知道 sys.argv[0] 表示當(dāng)前腳本本身文件路徑的該腳本文件。后來經(jīng)過大量努力,多方求教才真正明悟了,謹(jǐn)以記錄和分享,希望能從另一個(gè)角度給同在求索過程中的同學(xué)一點(diǎn)啟發(fā)。

sys.argv 其實(shí)就是一個(gè)從程序外部獲取參數(shù) 的橋梁,這里所說的 外部 很關(guān)鍵,所以那些試圖從代碼來說明它作用的解釋一直沒看明白。因?yàn)槲覀冃枰仍诮K端執(zhí)行腳本, 并從外部傳入?yún)?shù)(可以是多個(gè)),所以獲得的是一個(gè)列表(list),也就是說sys.argv其實(shí)可以看作是一個(gè)列表,所以才能用[ ]提取其中的元素。其第一個(gè)元素是程序本身,隨后才依次是外部傳入的參數(shù)。

我們先來看一下 sys.argv 返回的是什么?

import sys


print(sys.argv)

# >>> 執(zhí)行結(jié)果如下:
# >>> ['/Users/username/PycharmProjects/XXXXX/XXXXX/animal/package_sys.py']
# >>> 從執(zhí)行結(jié)果可以看出 其輸出的就是當(dāng)前路徑下的當(dāng)前腳本本身,也就可以理解為 'sys.argv' 其實(shí)就是運(yùn)行自身的腳本文件 
# >>> 我們從 '外部' 運(yùn)行該腳本文件的時(shí)候,需要傳入?yún)?shù)(可以是多個(gè))

接下來我們將上面的代碼改為如下:

import sys


print(sys.argv[0], sys.argv[1])

# >>> 接下來我們進(jìn)入 Terminal 終端 利用 python 執(zhí)行 該腳本文件,并傳入 測(cè)試參數(shù),結(jié)果如下圖。

為了更好的 演示 sys.argv 屬性,我們將上文演示的 sys 常用的函數(shù)與屬性進(jìn)行一下修改。示例如下:

import sys

command = sys.argv[1]
if command == 'modules':
    modules = sys.modules
    print(modules)
elif command == 'path':
    path = sys.path
    print(path)
elif command == 'encoding':
    code = sys.getdefaultencoding()
    print(code)
elif command == 'platform':
    print(sys.platform)
elif command == 'version':
    print(sys.version)
else:
    print('該命令未識(shí)別')

然后在 Terminal 終端 執(zhí)行該腳本,如下圖:

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

相關(guān)文章

最新評(píng)論