日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【Python 标准库学习】系统相关的参数和函数库 — sys

發布時間:2023/12/10 windows 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python 标准库学习】系统相关的参数和函数库 — sys 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎加入 Python 官方文檔翻譯團隊:https://www.transifex.com/python-doc/


sys 模塊提供了與 Python 解釋器緊密相關的一些變量和函數,這些變量可能被解釋器使用,也可能由解釋器提供

sys 模塊官方文檔:https://docs.python.org/3/library/sys.html


部分常用函數:

    • 1、sys.argv
    • 2、sys.path
    • 3、sys.platform
    • 4、sys.getwindowsversion()
    • 5、sys.version
    • 6、sys.exit(n)
    • 7、sys.modules
    • 8、sys.stdin / stdout / stderr


1、sys.argv

獲取當前正在執行的命令行參數的參數列表

sys.argv[0] 返回當前程序名,sys.argv[1] 返回第一個參數

sys.argv[2] 返回第二個參數,len(sys.argv)-1 參數個數(減去文件名)

應用舉例:在桌面新建一個 test.py,文件路徑為:C:\Users\Lenovo\Desktop\test.py,寫入以下內容:

import sys print(sys.argv) print('當前程序名:%s' %sys.argv[0]) print('第一個參數:%s' %sys.argv[1]) print('第二個參數:%s' %sys.argv[2]) print('參數個數:%s' %(len(sys.argv)-1))

用命令行運行該程序:

C:\Users\Lenovo\Desktop>test.py arg1 arg2 ['C:\\Users\\Lenovo\\Desktop\\test.py', 'arg1', 'arg2'] 當前程序名:C:\Users\Lenovo\Desktop\test.py 第一個參數:arg1 第二個參數:arg2 參數個數:2

2、sys.path

獲取模塊文件搜索路徑的字符串,或臨時指定新搜索路徑,可通過在主程序設置臨時搜索路徑來解決指定文件夾下模塊文件的導入問題

應用舉例:

>>> import sys # 導入 sys 模塊 >>> sys.path # 執行 path 函數 ['', 'E:\\Python\\Lib\\idlelib', 'E:\\Python\\python36.zip', 'E:\\Python\\DLLs', 'E:\\Python\\lib', 'E:\\Python', 'C:\\Users\\Lenovo\\AppData\\Roaming\\Python\\Python36\\site-packages', 'E:\\Python\\lib\\site-packages', 'E:\\Python\\lib\\site-packages\\viz-0.0.5-py3.6.egg', 'E:\\Python\\lib\\site-packages\\win32', 'E:\\Python\\lib\\site-packages\\win32\\lib', 'E:\\Python\\lib\\site-packages\\Pythonwin'] >>> sys.path[0] = 'D:\\test' # 臨時指定新的搜索路徑 >>> sys.path # 顯示臨時指定的搜索路徑已經存在 ['D:\\test', 'E:\\Python\\Lib\\idlelib', 'E:\\Python\\python36.zip', 'E:\\Python\\DLLs', 'E:\\Python\\lib', 'E:\\Python', 'C:\\Users\\Lenovo\\AppData\\Roaming\\Python\\Python36\\site-packages', 'E:\\Python\\lib\\site-packages', 'E:\\Python\\lib\\site-packages\\viz-0.0.5-py3.6.egg', 'E:\\Python\\lib\\site-packages\\win32', 'E:\\Python\\lib\\site-packages\\win32\\lib', 'E:\\Python\\lib\\site-packages\\Pythonwin'] >>> sys.path[0] # 獲取第一個搜索路徑 'D:\\test' # 顯示第一個搜索路徑字符串

3、sys.platform

操作系統標識符判斷函數,獲取當前執行環境的平臺,不同系統的標識符如下:

系統標識符
Windowswin32
linuxlinux
MacOSdarwin
Windows/Cygwincygwin
AIXaix

應用舉例:

>>> import sys >>> print(sys.platform) win32

可以利用 platform 結合 sys.path 函數實現不同版本模塊文件的導入,如在 Windows 操作系統下導入 Windows 版本的模塊文件和在 Linux 操作系統下導入 Linux 版本的模塊文件,用代碼演示如下:

if sys.platform.startswith('win32'):print('調用 Windows 版本的模塊文件代碼') elif sys.platform.startswith('linux'):print('調用 Linux 版本的模塊文件代碼')

4、sys.getwindowsversion()

返回描述當前運行的 Windows 版本信息的元組

返回的參數有:

參數含義
major主要版本號
minor次要版本號
build發布年月
platform返回一個數值,代表操作系統產品類型號,不同數值代表含義不同
service_pack一個字符串
service_pack_minor\
service_pack_major\
suite_mask\
product_type返回一個數值,代表產品類型,不同數值代表含義不同
platform_version返回當前操作系統的 major (主要版本號)、minor (次要版本號) 和 build (發布年月),類型為一個三元組

platform 可能的值及其含義:

常量平臺
0(VER_PLATFORM_WIN32s)Windows 3.1上的Win32s
1(VER_PLATFORM_WIN32_WINDOWS)Windows 95/98 / ME
2(VER_PLATFORM_WIN32_NT)Windows NT / 2000 / XP / x64
3(VER_PLATFORM_WIN32_CE)Windows CE

product_type 可能的值及其含義:

常量平臺
1(VER_NT_WORKSTATION)代表系統是工作站
2(VER_NT_DOMAIN_CONTROLLER)代表系統是域控制器
3(VER_NT_SERVER)代表系統是服務器,但不是域控制器

組件也可以按名稱訪問,因此 sys.getwindowsversion()[0] 等同于sys.getwindowsversion().major,為了與以前的版本兼容,只有前5個元素可以通過索引檢索。

應用舉例:

>>> import sys >>> print(sys.getwindowsversion()) sys.getwindowsversion(major=10, minor=0, build=18363, platform=2, service_pack='') >>> >>> print(sys.getwindowsversion()[1]) 0 >>> >>> print(sys.getwindowsversion().platform_version) (10, 0, 18362)

5、sys.version

返回一個字符串,包含 Python 解釋器的版本號以及所用的內部版本號和編譯器的附加信息

應用舉例:

>>> import sys >>> print(sys.version) 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]

6、sys.exit(n)

程序退出,如果是正常退出是 sys.exit(0),可選參數 n 可以是給定退出狀態(默認為零)的整數,也可以是其他類型的對象。如果是整數,則 0 被認為是成功終止,任何非零值被 shell 等視為異常終止。大多數系統要求它在 0 到 127 之間,否則會產生未定義的結果。有些系統有一個為特定退出代碼指定特定含義的約定,但這些約定通常不是普遍的;Unix 程序通常使用 2 表示命令行語法錯誤,使用 1 表示所有其他類型的錯誤。

應用舉例:

import sysprint('I love python!') sys.exit(0) print('I love java!')

運行該程序,輸出 I love python! 后并沒有繼續輸出 I love java!,因為在執行到 sys.exit(0) 的時候程序就結束了。

7、sys.modules

sys.modules 可以將模塊名稱映射到已加載的模塊的字典,每當程序員導入新的模塊,sys.modules 將自動記錄該模塊,當第二次再導入該模塊時,Python 會直接到字典中查找,從而加快了程序運行的速度。

sys.modules 模塊擁有字典所擁有的一切方法,可以通過這些方法了解當前的環境加載了哪些模塊

應用舉例:

>>> import sys >>> print(sys.modules['os']) <module 'os' from 'E:\\Python\\lib\\os.py'> >>> >>> print(sys.modules['sys']) <module 'sys' (built-in)> >>> >>> print(sys.modules.values()) >>> dict_values([<module 'builtins' (built-in)>, <module 'sys' (built-in)>, ......, <module 'urllib.parse' from 'E:\\Python\\lib\\urllib\\parse.py'>]) >>> >>> print(sys.modules.keys()) dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp',......, 'pydoc', 'pkgutil', 'urllib', 'urllib.parse'])

8、sys.stdin / stdout / stderr

解釋器用于標準輸入 (sys.stdin)、輸出 (sys.stdout) 和錯誤 (sys.stderr) 的文件對象。

sys.stdin、sys.stdout 與我們平常使用的 input、print 類似。

Python 在調用 print 時,事實上調用了 sys.stdout.write(obj+'\n'),用例子來說明(以下兩行代碼等價):

sys.stdout.write('I love python!' + '\n') print('I love python!')

sys.stdin.readline() 方法會將標準輸入全部獲取,包括末尾的 \n,使用 len 計算長度時會把換行符 \n 也算進去,而 input() 獲取輸入時返回的結果是不包含末尾的換行符 \n 的,以下舉例說明兩者的區別:

>>> import sys >>> print(len(sys.stdin.readline())) hello 6 >>> print(len(input())) hello 5

可以看到,兩者輸入的字符串都一樣,而長度不一樣,如果使用了 sys.stdin.readline() 方法,想將其換行符去掉的話,可以用 strip() 函數或者直接切片的方法,示例如下:

>>> import sys >>> print(len(sys.stdin.readline())) hello 6 >>> print(len(sys.stdin.readline().strip('\n'))) hello 5 >>> print(len(sys.stdin.readline()[:-1])) hello 5

總結

以上是生活随笔為你收集整理的【Python 标准库学习】系统相关的参数和函数库 — sys的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。