Python常用模塊5-Python的sys模塊簡(jiǎn)介

一.sys模塊簡(jiǎn)介

該模塊提供了一些變量和函數(shù)振诬。這些變量可能被解釋器使用愤兵,也可能由解釋器提供。這些函數(shù)會(huì)影響解釋器。本模塊總是可用的。

sys常用的函數(shù)簡(jiǎn)介:

函數(shù)名 介紹
sys.argv 實(shí)現(xiàn)從程序外部向程序傳遞參數(shù)。
sys.exit([arg]) 程序中間的退出廉涕,arg=0為正常退出
sys.stdout.write('please:') 標(biāo)準(zhǔn)輸出,引出進(jìn)度條的例子
sys.getrecursionlimit() 獲取最大遞歸層數(shù)
sys.setrecursionlimit(1200) 設(shè)置最大遞歸層數(shù)
sys.getdefaultencoding() 獲取系統(tǒng)當(dāng)前編碼,一般默認(rèn)為ascii狐蜕。
sys.setdefaultencoding() 設(shè)置系統(tǒng)默認(rèn)編碼宠纯,執(zhí)行dir(sys)時(shí)不會(huì)看到這個(gè)方法,在解釋器中執(zhí)行不通過层释,可以先執(zhí)行reload(sys)婆瓜,在執(zhí)行 setdefaultencoding('utf8'),此時(shí)將系統(tǒng)默認(rèn)編碼設(shè)置為utf8湃累。(見設(shè)置系統(tǒng)默認(rèn)編碼 )
sys.getfilesystemencoding() 獲取文件系統(tǒng)使用編碼方式勃救,Windows下返回'mbcs'碍讨,mac下返回'utf-8'.
sys.path 獲取指定模塊搜索路徑的字符串集合治力,可以將寫好的模塊放在得到的某個(gè)路徑下,就可以在程序中import時(shí)正確找到勃黍。
sys.platform 獲取當(dāng)前系統(tǒng)平臺(tái)
sys.stdin,sys.stdout,sys.stderr: stdin , stdout以及stderr 變量包含與標(biāo)準(zhǔn)I/O 流對(duì)應(yīng)的流對(duì)象. 如果需要更好地控制輸出,而print 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時(shí)候你就可以重定向輸出和輸入到其它設(shè)備( device ), 或者以非標(biāo)準(zhǔn)的方式處理它們

二.sys常用函數(shù)案例

2.1 sys.argv

一個(gè)列表宵统,其中包含了被傳遞給 Python 腳本的命令行參數(shù)。 argv[0] 為腳本的名稱(是否是完整的路徑名取決于操作系統(tǒng))覆获。如果是通過 Python 解釋器的命令行參數(shù) -c 來執(zhí)行的马澈, argv[0] 會(huì)被設(shè)置成字符串 '-c' 。如果沒有腳本名被傳遞給 Python 解釋器弄息, argv[0] 為空字符串痊班。

sys.argv[0]當(dāng)前程序名
sys.argv[1]第一個(gè)參數(shù)
sys.argv[2]第二個(gè)參數(shù)
len(sys.argv)-1 參數(shù)個(gè)數(shù)(減去文件名)

代碼:

import sys

print(sys.argv[0])

測(cè)試記錄:

E:\python\learn_python1\venv\Scripts\python.exe E:/python/learn_python1/sys_test1.py
E:/python/learn_python1/sys_test1.py

Process finished with exit code 0

2.2 sys.exit

由于 exit() 最終“只是”拋出一個(gè)異常,因此當(dāng)從主線程調(diào)用時(shí)摹量,只會(huì)從進(jìn)程退出涤伐;而異常不會(huì)因此被打斷。

調(diào)用sys.exit(n)可以中途退出程序缨称,當(dāng)參數(shù)非0時(shí)凝果,會(huì)引發(fā)一個(gè)SystemExit異常,從而可以在主程序中捕獲該異常睦尽。

代碼:

import sys
sys.exit(3)

print('hello')

測(cè)試記錄:

E:\python\learn_python1\venv\Scripts\python.exe E:/python/learn_python1/sys_test1.py

Process finished with exit code 3

從上面的測(cè)試可以看出器净,sys.exit(3),因?yàn)?非0当凡,所以此時(shí)已經(jīng)退出整個(gè)程序了山害,后面的print('hello')語句不執(zhí)行。

2.3 sys.path

功能:獲取指定模塊搜索路徑的字符串集合沿量,可以將寫好的模塊放在得到的某個(gè)路徑下粗恢,就可以在程序中import時(shí)正確找到。

測(cè)試記錄:

>>> import sys
>>> sys.path
['', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\DLLs', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\pip-21.0.1-py3.6.egg', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\win32', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\win32\\lib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages\\Pythonwin']
>>>

sys.path.append("自定義模塊路徑")

2.4 sys.modules

功能:sys.modules是一個(gè)全局字典欧瘪,該字典是python啟動(dòng)后就加載在內(nèi)存中眷射。每當(dāng)程序員導(dǎo)入新的模塊,sys.modules將自動(dòng)記錄該模塊。當(dāng)?shù)诙卧賹?dǎo)入該模塊時(shí)妖碉,python會(huì)直接到字典中查找涌庭,從而加快了程序運(yùn)行的速度。它擁有字典所擁有的一切方法欧宜。

代碼:

import sys
print(sys.modules.keys())

測(cè)試記錄:

E:\python\learn_python1\venv\Scripts\python.exe E:/python/learn_python1/sys_test1.py
dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', '_bootlocale', '_locale', 'encodings.gbk', '_codecs_cn', '_multibytecodec', 'types', 'functools', '_functools', 'collections', 'operator', '_operator', 'keyword', 'heapq', '_heapq', 'itertools', 'reprlib', '_collections', 'weakref', 'collections.abc', 'importlib', 'importlib._bootstrap', 'importlib._bootstrap_external', 'warnings', 'importlib.util', 'importlib.abc', 'importlib.machinery', 'contextlib', 'zope', 'sysconfig', 'encodings.cp437', 'sitecustomize'])

Process finished with exit code 0

2.5 sys.stdin\stdout\stderr

功能:stdin , stdout , 以及stderr 變量包含與標(biāo)準(zhǔn)I/O 流對(duì)應(yīng)的流對(duì)象. 如果需要更好地控制輸出,而pri nt 不能滿足你的要求, 它們就是你所需要的. 你也可以替換它們, 這時(shí)候你就可以重定向輸出和輸入到其它設(shè)備( device ), 或者以非標(biāo)準(zhǔn)的方式處理它們

sys.stdout.write     可以做輸出重定向

代碼:

import sys

for i in range(3):
    print("I love python!")

print("\n")

for i in range(3):
    sys.stdout.write("I'm studying python!")

print("\n")

# 輸出的是紅色
for i in range(3):
    sys.stderr.write("I'm studying python!")

測(cè)試記錄:

E:\python\learn_python1\venv\Scripts\python.exe E:/python/learn_python1/sys_test1.py
I love python!
I love python!
I love python!


I'm studying python!I'm studying python!I'm studying python!

I'm studying python!I'm studying python!I'm studying python!
Process finished with exit code 0

參考:

1.https://www.cnblogs.com/fmgao-technology/p/9074282.html
2.https://docs.python.org/zh-cn/3.6/library/sys.html
3.https://www.cnblogs.com/machangwei-8/p/10718187.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坐榆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子冗茸,更是在濱河造成了極大的恐慌席镀,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夏漱,死亡現(xiàn)場(chǎng)離奇詭異豪诲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挂绰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門屎篱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人葵蒂,你說我怎么就攤上這事交播。” “怎么了践付?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵秦士,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我永高,道長(zhǎng)隧土,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任乏梁,我火速辦了婚禮次洼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘遇骑。我一直安慰自己卖毁,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布落萎。 她就那樣靜靜地躺著亥啦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪练链。 梳的紋絲不亂的頭發(fā)上翔脱,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音媒鼓,去河邊找鬼届吁。 笑死错妖,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的疚沐。 我是一名探鬼主播暂氯,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼亮蛔!你這毒婦竟也來了痴施?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤究流,失蹤者是張志新(化名)和其女友劉穎辣吃,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體芬探,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡神得,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了灯节。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片循头。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绵估,死狀恐怖炎疆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情国裳,我是刑警寧澤形入,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站缝左,受9級(jí)特大地震影響亿遂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜渺杉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一蛇数、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧是越,春花似錦耳舅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至天梧,卻和暖如春盔性,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背呢岗。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工冕香, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛹尝,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓悉尾,卻偏偏與公主長(zhǎng)得像箩言,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子焕襟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 先把常用命令粘出來方便查看 標(biāo)準(zhǔn)自帶模塊陨收,不需要安裝sys.argv 命令行參數(shù)List,第一個(gè)元素是程序本身路徑...
    小呀小芒果閱讀 1,482評(píng)論 0 1
  • sys模塊功能多鸵赖,我們這里介紹一些比較實(shí)用的功能务漩,相信你會(huì)喜歡的,和我一起走進(jìn)python的模塊吧它褪! sys模塊的...
    忘了呼吸的那只貓閱讀 1,119評(píng)論 0 12
  • 【1】模塊功能 sys用于與python解釋器交互饵骨。 【2】相關(guān)函數(shù)及使用 1、sys.argv[n]:實(shí)現(xiàn)從程序...
    Byte_Pulse閱讀 113評(píng)論 0 0
  • sys模塊主要是針對(duì)與Python解釋器相關(guān)的變量和方法茫打,不是主機(jī)操作系統(tǒng)居触。 導(dǎo)入方式:import sys sy...
    HaringLi閱讀 258評(píng)論 0 0
  • Python的強(qiáng)大不僅體現(xiàn)在它擁有強(qiáng)大的自有模塊(標(biāo)準(zhǔn)庫(kù))轮洋,同時(shí)還體現(xiàn)在它有海量的第三方庫(kù)。 模塊的自信來自于抬旺,模...
    皮皮大閱讀 760評(píng)論 0 1