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