Python常用標準函式庫及第三方函式庫2-sys模組
一、sys模組簡介
前面介紹的os模組主要面向作業系統,而本篇的sys模組則主要針對的是Python解釋器。
sys模組是Python自帶的模組,它是與Python解釋器互動的一個介面。 sys 模組提供了許多函數和變數來處理 Python 執行環境的不同部分。
二、sys模組常用方法
透過dir()方法可以檢視sys模組中帶有哪些方法:
import sys print(dir(sys))
1.sys.argv-取得命令列參數
sys.argv作用是實作從程式外部傳遞參數,它能夠取得命令列參數清單。 argv列表包含了所有傳遞給腳本的參數:
- sys.argv[0]:表示程式本身
- sys.argv[1]:表示程式的第一個參數
- sys.argv[2]:表示程式的第二個參數
import sys for index, arg in enumerate(sys.argv): print(index, arg)
#在Python命令列執行此腳本檔案(未帶任何參數時),取得到的第一個元素是腳本本身。列印結果為:
在Python命令列執行此腳本檔案(帶參數時),取得到的第一個元素是腳本本身,其餘的是傳遞來的參數。列印結果為:
2.sys.exit(n)-退出程式
##sys.exit() 基本原則sys.exit(n):- 當n為0時:正常退出當n不等於0時,非正常退出,會引發SystemExit的例外
# sys.exit()用法示例 def exit_function(value): print("sys.exit()捕获到的value是%s" % value) sys.exit(0) print("start sys") try: sys.exit(888) except SystemExit as value: exit_function(value=value) print("end sys")
- 緊接著執行try語句,呼叫sys.exit(888)
- 接著擷取系統例外,擷取到的SystemExit例外的value值為888
- 最後呼叫exit_function函數,將value值888傳遞給exit_function函數
- 在exit_function函數中,執行語句、列印擷取到的value值,最後再呼叫sys.exit(0),退出程式 ② 程式中途不退出範例
上个示例的执行结果可以看到在exit_function函数中调用sys.exit(0),此时程序就会退出,不会再执行print("end sys"),而当在exit_function函数中注释掉sys.exit(0),则会继续执行最后的代码print("end sys"),即:程序中途不退出,如下所示:
3.sys.platform-获取当前Python运行平台
基本用法
print(sys.platform)
Windows下运行:
Linux下运行:
除了sys.platform外,通过platform.system()也可以获取到当前系统平台:
Windows下运行:
Linux下运行:
适用场景
我们都知道Python是跨平台语言,只要操作系统安装了Python环境,那么同一份Python代码就可以既运行在Linux上,也可以运行在Windows上,亦或是Mac上。
而使用sys.platform或platform.system()获取到当前系统平台名称后,我们就可以针对性地作出不同操作,例如:
linux_content = "111111" windows_content = "222222" # 平台为Linux,执行逻辑1、发送文本1到指定邮件 if platform.system() == "Linux": send_email(linux_content) # 平台为Windows,执行逻辑2、发送文本2到指定邮件 elif platform.system() == "Windows": send_email(windows_content)
4.sys.path-返回Python相关路径
基本用法
sys.path是Python的搜索模块的路径集,供Python从中查找模块,返回一个list。
print(sys.path)
适用场景
如果是在IDE中执行Python程序,编译器会自动把当前项目的根目录加入到包查找路径中,可以理解为添加到环境变量下,所以直接执行是没有问题的。但是在cmd或是Terminal控制台中直接使用Python相关命令来执行程序,则不会自动将当前项目加入到PYTHONPATH环境变量下,如果涉及到import其他文件夹下的变量就会报类似"ModuleNotFoundError: No module named 'xxxx'"这样的错误。
解决方法:通过sys.path.append()方法将当前项目的根目录添加到系统环境变量中:
import sys root_path = os.path.dirname(os.path.realpath(__file__)) sys.path.append(root_path)
5.sys.stdin与sys.stdout
- Stdin:标准输入
- Stdout:标准输出
- Stderr:错误流
sys.stdin 与 input()
在Python中, input() 等价于 sys.stdin.readline()
① 先来看看使用input()的实现效果
# sys.stdin 与 input number = input("please input a number:") print("your input number is %s" % (number))
执行效果如下:
② 再来看看使用sys.stdin.readline()的实现效果
print("please input a number:",)# 逗号表示不换行 nn = sys.stdin.readline() print("your input number is %s" % (nn))
执行效果如下:
sys.stdout 与 print()
在Python中, print() 等价于 sys.stdout.readline()
① 先来看看使用print()的实现效果
# sys.stdout 与 print print("hello world")
执行效果如下:
② 再来看看使用sys.stdin.write()的实现效果
sys.stdout.write("hello world")
执行效果如下:
所以综上所述,input()+print() 结合的代码语句即可使用sys.stdin.readline()+sys.stdin.write()代替,如下:
sys.stdout.write("please input a number: n") number = sys.stdin.readline() sys.stdout.write("your input number is %s" % number)
执行效果如下:
6.sys模組其他用法
- sys.version:取得Python解釋器版本
- sys.exc_info():傳回例外訊息三元組
- sys.getdefaultencoding():取得系統目前編碼,預設為utf-8
- sys.setdefaultencoding():設定係統的預設編碼
- sys.getfilesystemencoding():取得檔案系統使用編碼方式,預設是utf-8
- sys.modules:以字典的形式傳回所有目前Python環境中已經匯入的模組
- sys.copyright:目前Python的版權資訊
- sys.getrefcount(object):傳回物件的參考數量
- sys.getrecursionlimit():傳回Python最大遞迴深度,預設1000
- #sys.getsizeof(object[, default ]):傳回物件的大小
- sys.getwindowsversion():傳回目前windwos系統的版本資訊
小結
sys模組是Python自帶的模組,主要用於與Python解釋器互動。它自帶了許多方法或屬性,其中:
1.sys.argv作用是實作從程式外部向程式傳遞參數,它能夠取得命令列參數清單。 argv列表包含了所有傳遞給腳本的參數:
- sys.argv[0]:表示程式本身
- sys.argv[1]:表示程式的第一個參數
- sys.argv[2]:表示程式的第二個參數
2.sys.exit(n)作用是退出程式:
- #當n為0時:正常退出
- 當n不等於0時,非正常退出,會引發SystemExit的異常
sys.exit(n)經常與捕獲SystemExit異常一起使用,用來控製程式是否自由地中途退出;
3.sys.platform作用是取得目前Python運行平台,類似於platform.system(),常用來針對性地對不同作業系統作出不同的操作邏輯;
4.sys.path是Python的搜尋模組的路徑集,透過sys.path.append()方法將目前專案的根目錄加入系統環境變數中,可用來解決找不到模組的報錯情況;
5.在Python中, input() 等價於sys.stdin.readline(),print() 等價於sys.stdout.readline()。
以上是Python常用標準函式庫及第三方函式庫2-sys模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PS“正在載入”問題是由資源訪問或處理問題引起的:硬盤讀取速度慢或有壞道:使用CrystalDiskInfo檢查硬盤健康狀況並更換有問題的硬盤。內存不足:升級內存以滿足PS對高分辨率圖片和復雜圖層處理的需求。顯卡驅動程序過時或損壞:更新驅動程序以優化PS和顯卡之間的通信。文件路徑過長或文件名有特殊字符:使用簡短的路徑和避免使用特殊字符。 PS自身問題:重新安裝或修復PS安裝程序。

PS啟動時卡在“正在載入”可能是由於各種原因造成的:禁用損壞或衝突的插件。刪除或重命名損壞的配置文件。關閉不必要的程序或升級內存,避免內存不足。升級到固態硬盤,加快硬盤讀取速度。重裝PS修復損壞的系統文件或安裝包問題。查看錯誤日誌分析啟動過程中的錯誤信息。

PS打開文件時出現“正在載入”卡頓,原因可能包括:文件過大或損壞、內存不足、硬盤速度慢、顯卡驅動問題、PS版本或插件衝突。解決方法依次為:檢查文件大小和完整性、增加內存、升級硬盤、更新顯卡驅動、卸載或禁用可疑插件、重裝PS。通過逐步排查,並善用PS的性能設置,養成良好的文件管理習慣,可以有效解決該問題。

羽化控制的關鍵在於理解其漸變本質。 PS本身不提供直接控制漸變曲線的選項,但你可以通過多次羽化、配合蒙版、精細選區,靈活調整半徑和漸變柔和度,實現自然過渡效果。

文章介紹了MySQL數據庫的上手操作。首先,需安裝MySQL客戶端,如MySQLWorkbench或命令行客戶端。 1.使用mysql-uroot-p命令連接服務器,並使用root賬戶密碼登錄;2.使用CREATEDATABASE創建數據庫,USE選擇數據庫;3.使用CREATETABLE創建表,定義字段及數據類型;4.使用INSERTINTO插入數據,SELECT查詢數據,UPDATE更新數據,DELETE刪除數據。熟練掌握這些步驟,並學習處理常見問題和優化數據庫性能,才能高效使用MySQL。

PS羽化是一種圖像邊緣模糊效果,通過在邊緣區域對像素加權平均實現。設置羽化半徑可以控制模糊程度,數值越大越模糊。靈活調整半徑可根據圖像和需求優化效果,如處理人物照片時使用較小半徑保持細節,處理藝術作品時使用較大半徑營造朦朧感。但需注意,半徑過大易丟失邊緣細節,過小則效果不明顯。羽化效果受圖像分辨率影響,且需要根據圖像理解和效果把握進行調整。

MySQL性能優化需從安裝配置、索引及查詢優化、監控與調優三個方面入手。 1.安裝後需根據服務器配置調整my.cnf文件,例如innodb_buffer_pool_size參數,並關閉query_cache_size;2.創建合適的索引,避免索引過多,並優化查詢語句,例如使用EXPLAIN命令分析執行計劃;3.利用MySQL自帶監控工具(SHOWPROCESSLIST,SHOWSTATUS)監控數據庫運行狀況,定期備份和整理數據庫。通過這些步驟,持續優化,才能提升MySQL數據庫性能。

MySQL 有免費的社區版和收費的企業版。社區版可免費使用和修改,但支持有限,適合穩定性要求不高、技術能力強的應用。企業版提供全面商業支持,適合需要穩定可靠、高性能數據庫且願意為支持買單的應用。選擇版本時考慮的因素包括應用關鍵性、預算和技術技能。沒有完美的選項,只有最合適的方案,需根據具體情況謹慎選擇。
