Pyhton的sys模塊有哪些經常使用方法

Python的sys模塊提供訪問由解釋器使用或維護的變量的接口,並提供了一些函數用來和解釋器進行交互,操控Python的運行時環境。

下面就來詳細介紹下該模塊中經常使用的屬性和方法。python

1、導入sys模塊git

import sys

 

2、查看sys模塊的功能windows

import sys
print(dir(sys))

運行結果:api

['__breakpointhook__', '__displayhook__', '__doc__', '__excepthook__', '__interactivehook__', '__loader__', '__name__', '__package__', '__spec__', '__stderr__', '__stdin__', '__stdout__', '__unraisablehook__', '_base_executable', '_clear_type_cache', '_current_frames', '_debugmallocstats', '_enablelegacywindowsfsencoding', '_framework', '_getframe', '_git', '_home', '_xoptions', 'addaudithook', 'api_version', 'argv', 'audit', 'base_exec_prefix', 'base_prefix', 'breakpointhook', '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_origin_tracking_depth', 'getallocatedblocks', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'getwindowsversion', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'pycache_prefix', 'set_asyncgen_hooks', 'set_coroutine_origin_tracking_depth', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'unraisablehook', 'version', 'version_info', 'warnoptions', 'winver']

 

3、查看平臺標識符字符串async

import sys
print(sys.platform)

運行結果:函數

win32

 

4、查看當前Python解釋器的版本ui

import sys
print(sys.version)

運行結果:spa

3.8.5 (tags/v3.8.5:580fbb0, Jul 20 2020, 15:57:54) [MSC v.1924 64 bit (AMD64)]

 

5、查看Python的環境變量或模塊搜索路徑命令行

import sys
print(sys.path)

運行結果:debug

['D:\\python\\lianxi', 'D:\\python\\lianxi', 'D:\\Program Files\\JetBrains\\PyCharm 2020.1\\plugins\\python\\helpers\\pycharm_display']

 

6、查看已載入的模塊

import sys
print(sys.modules.keys())        # 它是返回一個字典,鍵是已經載入的模塊名

運行結果:

dict_keys(['sys', 'builtins', '_frozen_importlib', '_imp', '_warnings', '_frozen_importlib_external', '_io', 'marshal', 'nt', '_thread', '_weakref', 'winreg', 'time', 'zipimport', '_codecs', 'codecs', 'encodings.aliases', 'encodings', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', '_abc', 'abc', 'io', '_stat', 'stat', '_collections_abc', 'genericpath', 'ntpath', 'os.path', 'os', '_sitebuiltins', 'sitecustomize', 'site'])

 

7、獲取正在處理的異常的相關信息

import sys
try:
    raise KeyError        # 主動拋出一個異常
except:
    print(sys.exc_info())

運行結果:

(<class 'KeyError'>, KeyError(), <traceback object at 0x0000020B7ABC0480>)

sys.exc_info()就是捕獲到異常的信息,執行後返回一個元組,第一個元素是異常的類型,第二個是異常的消息,第三個是個對象,這個對象稱爲回溯對象,可是它裏面有什麼細節並不知道,這個時候就能夠藉助traceback模塊來打印一下這裏面的內容。

 

import sys
import traceback
try:
    raise KeyError
except:
    print(sys.exc_info())
    traceback.print_tb(sys.exc_info()[2])

運行結果:

(<class 'KeyError'>, KeyError(), <traceback object at 0x0000021E53E0A700>)
  File "D:/python/lianxi/add.py", line 4, in <module>
    raise KeyError

 traceback.print_tb方法打印一下sys.exc_info()返回的元組裏的第三個元素,因此在後面寫上「[2]」,它告訴咱們你的文件在第幾行哪一個模塊下面有問題。

 

8、命令行參數

新建一個文件,存入如下代碼:

import sys
def add():
    a = 5
    b = 3
    return a + b
print(sys.argv)
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])

打開windows命令行,輸入:

python 文件存放路徑 x y 1 2 3

格式:python+空格+文件存放路徑+參數

返回值:

['D:\\python\\lianxi\\add_1.py', 'x', 'y', '1', '2', '3']
D:\python\lianxi\add_1.py
x
y

返回值告訴咱們整個參數有什麼,第一個參數是什麼,第二個參數是什麼,第三個參數是什麼。

 

9、標準輸出流

import sys
sys.stdout.write('Hello word')

運行結果:

Hello word

sys.stdout.write方法默認狀況下等同於print。

 

 

本文轉自:https://www.myblou.com/archives/1501

相關文章
相關標籤/搜索