Pythonsys模塊怎么使用-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)是專業(yè)的武安網(wǎng)站建設(shè)公司,武安接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行武安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

Python sys模塊怎么使用?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

sys 模塊代表了 Python 解釋器,主要用于獲取和 Python 解釋器相關(guān)的信息。

在 Python 的交互式解釋器中先導(dǎo)入 sys 模塊,然后輸入 [e for e in dir(sys) if not e.startswith('_')] 命令(sys 模塊沒有 __all__ 變量),可以看到如下輸出結(jié)果:

>>> [e for e in dir(sys) if not e.startswith('_')]
['api_version', 'argv', 'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder', 'call_tracing', 
'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix',
 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_wrapper', 
 'getallocatedblocks', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencodeerrors', 'getfilesystemencoding', 
 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'getwindowsversion',
  'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'last_traceback', 'last_type', 
  'last_value', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 
  'platform', 'prefix', 'set_asyncgen_hooks', 'set_coroutine_wrapper', 'setcheckinterval', 'setprofile', 
  'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'version',
   'version_info', 'warnoptions', 'winver']

上面列出的程序單元就是 sys 模塊所包含的全部程序單元(包括變量、函數(shù)等),讀者不要被它們嚇著了,以為這些全都需要記下來。實(shí)際上完全沒有必要,通常都是用到哪些模塊就去查閱其對(duì)應(yīng)的說明文檔和參考手冊(cè)。

>>> [e for e in dir(sys) if not e.startswith('_')]

['api_version', 'argv', 'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_wrapper', 'getallocatedblocks', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'getwindowsversion', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'set_asyncgen_hooks', 'set_coroutine_wrapper', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'version', 'version_info', 'warnoptions', 'winver']需要說明的是,大部分時(shí)候用不到 sys 模塊里很冷僻的功能,因此本節(jié)只介紹 sys 模塊中常用的屬性和函數(shù):

sys.argv:獲取運(yùn)行 Python 程序的命令行參數(shù)。其中 sys.argv[0] 通常就是指該 Python 程序,sys.argv[1] 代表為 Python 程序提供的第一個(gè)參數(shù),sys.argv[2] 代表為 Python 程序提供的第二個(gè)參數(shù)……依此類推。

sys.byteorder:顯示本地字節(jié)序的指示符。如果本地字節(jié)序是大端模式,則該屬性返回 big;否則返回 little。

sys.copyright:該屬性返回與 Python 解釋器有關(guān)的版權(quán)信息。

sys.executable:該屬性返回 Python 解釋器在磁盤上的存儲(chǔ)路徑。

sys.exit():通過引發(fā) SystemExit 異常來退出程序。將其放在 try 塊中不能阻止 finally 塊的執(zhí)行。

sys.flags:該只讀屬性返回運(yùn)行 Python 命令時(shí)指定的旗標(biāo)。

sys.getfilesystemencoding():返回在當(dāng)前系統(tǒng)中保存文件所用的字符集。

sys.getrefcount(object):返回指定對(duì)象的引用計(jì)數(shù)。前面介紹過,當(dāng) object 對(duì)象的引用計(jì)數(shù)為 0 時(shí),系統(tǒng)會(huì)回收該對(duì)象。

sys.getrecursionlimit():返回 Python 解釋器當(dāng)前支持的遞歸深度。該屬性可通過 setrecursionlimit() 方法重新設(shè)置。

sys.getswitchinterval():返回在當(dāng)前 Python 解釋器中線程切換的時(shí)間間隔。該屬性可通過 setswitchinterval() 函數(shù)改變。

sys.implementation:返回當(dāng)前 Python 解釋器的實(shí)現(xiàn)。

sys.maxsize:返回 Python 整數(shù)支持的大值。在 32 位平臺(tái)上,該屬性值為 2**31-1;在 64 位平臺(tái)上,該屬性值為 2**63-1。

sys.modules:返回模塊名和載入模塊對(duì)應(yīng)關(guān)系的字典。

sys.path:該屬性指定 Python 查找模塊的路徑列表。程序可通過修改該屬性來動(dòng)態(tài)增加 Python 加載模塊的路徑。

sys.platform:返回 Python 解釋器所在平臺(tái)的標(biāo)識(shí)符。

sys.stdin:返回系統(tǒng)的標(biāo)準(zhǔn)輸入流——一個(gè)類文件對(duì)象。

sys.stdout:返回系統(tǒng)的標(biāo)準(zhǔn)輸出流——一個(gè)類文件對(duì)象。

sys.stderr:返回系統(tǒng)的錯(cuò)誤輸出流——一個(gè)類文件對(duì)象。

sys.version:返回當(dāng)前 Python 解釋器的版本信息。

sys.winver:返回當(dāng)前 Python 解釋器的主版本號(hào)。

下面程序示范了使用 sys 模塊的部分功能:

import sys
# 顯示本地字節(jié)序的指示符。
print(sys.byteorder)
# 顯示Python解釋器有關(guān)的版權(quán)信息
print(sys.copyright)
# 顯示Python解釋器在磁盤上的存儲(chǔ)路徑。
print(sys.executable)
# 顯示當(dāng)前系統(tǒng)上保存文件所用的字符集。
print(sys.getfilesystemencoding())
# 顯示Python整數(shù)支持的大值
print(sys.maxsize)
# 顯示Python解釋器所在平臺(tái)
print(sys.platform)
# 顯示當(dāng)前Python解釋器的版本信息。
print(sys.version)
# 返回當(dāng)前Python解釋器的主版本號(hào)。
print(sys.winver)

上面程序分別調(diào)用了 sys 模塊的部分屬性和函數(shù)。運(yùn)行該程序,可以看到如下輸出結(jié)果:

little
Copyright (c) 2001-2017 Python Software Foundation.
All Rights Reserved.
Copyright (c) 2000 BeOpen.com.
All Rights Reserved.

Copyright (c) 1995-2001 Corporation for National Research Initiatives.
All Rights Reserved.

Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved.
D:\python3.6\pythonw.exe
utf-8
9223372036854775807
win32
3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)]
3.6

從上面的輸出結(jié)果可以看出,Windows 7 系統(tǒng)(作者使用的)的字節(jié)序是小端模式,將 Python 解釋器保存在 D:\python3.6\pythonw.exe 處,當(dāng)前 Python 版本是 3.6.2。

獲取運(yùn)行參數(shù)

通過 sys 模塊的 argv 屬性可獲取運(yùn)行 Python 程序的命令行參數(shù)。argv 屬性值是一個(gè)列表,其列表元素和運(yùn)行參數(shù)的關(guān)系如圖 所示

Python sys模塊怎么使用

因此,如果需要獲取運(yùn)行 Python 程序時(shí)傳入的參數(shù),可以通過 argv[1]、argv[2]……來獲取。例如下面程序(編寫在 argv_test.py 文件中):

from sys import argv
# 輸出argv列表的長度
print(len(argv))
# 遍歷argv列表的每個(gè)元素
for arg in argv:
   print(arg)

上面程序是最簡單的“Hello World”級(jí)的程序,只是這個(gè)程序增加了輸出 argv 列表的長度、遍歷 argv 列表元素的代碼。使用“python argv_test.py” 命令運(yùn)行上面程序,可以看到如下輸出結(jié)果:

1
argv_test.py

此時(shí)看到 argv 列表的長度為 1,argv 的第一個(gè)元素就是被運(yùn)行的 Python 程序。

如果改為使用如下命令來運(yùn)行該程序:

python argv_test.py Python Swift

可以看到如下輸出結(jié)果:

3
argv_test.py
Python
Swift

動(dòng)態(tài)修改模塊加載路徑

前面介紹了使用 PYTHONPATH 環(huán)境變量來添加 Python 模塊的加載路徑,但這種方式必須預(yù)先設(shè)置好。如果需要在程序運(yùn)行時(shí)動(dòng)態(tài)改變 Python 模塊的加載路徑,則可通過 sys.path 屬性來實(shí)現(xiàn)。

sys.path 也是很有用的一個(gè)屬性,它可用于在程序運(yùn)行時(shí)為 Python 動(dòng)態(tài)修改模塊加載路徑。例如,如下程序在運(yùn)行時(shí)動(dòng)態(tài)指定加載 g:\fk_ext 目錄下的模塊:

import sys
# 動(dòng)態(tài)添加g:\fk_ext路徑作為模塊加載路徑
sys.path.append('g:\\fk_ext')
# 加載g:\fk_ext路徑下的hello模塊
import hello

為了成功運(yùn)行該程序,需要在 G:\ 盤中創(chuàng)建 fk_ext 目錄,并在該目錄下添加 hello.py 模塊文件。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

文章標(biāo)題:Pythonsys模塊怎么使用-創(chuàng)新互聯(lián)
文章鏈接:http://muchs.cn/article28/dooijp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、商城網(wǎng)站域名注冊(cè)、自適應(yīng)網(wǎng)站、網(wǎng)站制作網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司