日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python學習之sys模塊使用教程詳解_python

作者:渴望力量的哈士奇 ? 更新時間: 2022-05-23 編程語言

sys模塊 與 os包一樣,也是對系統資源進行調用。功能同樣也是非常豐富,接下來我們會對 sys模塊的一些簡單且常用的函數進行介紹,主要針對一些非功能性的函數與屬性來認識一些不太常見的 Python 背后的事件。

sys 中的常用方法

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

示例如下:

import sys


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

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

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

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

# >>> 執行結果如下:
# >>> utf-8

print(sys.platform)         # 獲取當前系統平臺(如windows、Mac、linux)

# >>> 執行結果如下:
# >>> darwin

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

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

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

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

sys.argv 其實就是一個從程序外部獲取參數 的橋梁,這里所說的 外部 很關鍵,所以那些試圖從代碼來說明它作用的解釋一直沒看明白。因為我們需要先在終端執行腳本, 并從外部傳入參數(可以是多個),所以獲得的是一個列表(list),也就是說sys.argv其實可以看作是一個列表,所以才能用[ ]提取其中的元素。其第一個元素是程序本身,隨后才依次是外部傳入的參數。

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

import sys


print(sys.argv)

# >>> 執行結果如下:
# >>> ['/Users/username/PycharmProjects/XXXXX/XXXXX/animal/package_sys.py']
# >>> 從執行結果可以看出 其輸出的就是當前路徑下的當前腳本本身,也就可以理解為 'sys.argv' 其實就是運行自身的腳本文件 
# >>> 我們從 '外部' 運行該腳本文件的時候,需要傳入參數(可以是多個)

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

import sys


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

# >>> 接下來我們進入 Terminal 終端 利用 python 執行 該腳本文件,并傳入 測試參數,結果如下圖。

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

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('該命令未識別')

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

原文鏈接:https://blog.csdn.net/weixin_42250835/article/details/123649719

欄目分類
最近更新