python的sys模块学习与实践

ops/2024/12/18 12:40:11/

一、sys模块是python内置模块,他提供了一些简单的函数和变量,用于访问与python解释器和python环境相关的变量与功能。

二、使用时,需要导入

import sys

三、sys模块的函数 

1、sys.exit() 代表从python程序中退出,调用sys.exit()会导致程序立即终止。若传递一个证书或字符串,他将用作退出状态码,若不传递任何参数,则默认退出状态码为0。

2、sys.getdefaultencoding() 用于获取python解释器的默认编码格式,默认编码通常用于将字节字符串转换为unicode字符串,或将unicode字符串转换为字节字符串。

>>> sys.getdefaultencoding()
'utf-8'
>>> unicode_string = '你好,世界'
>>> byte_string = unicode_string.encode(sys.getdefaultencoding())
>>> print(byte_string)
b'\xe4\xbd\xa0\xe5\xa5\xbd\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c'
>>> byte_string.decode(sys.getdefaultencoding())
'你好,世界'
>>>

3、sys.getrecursionlimit() 获取当前python解释器的最大递归深度。递归深度是指一个函数可以递归调用自己的最大次数,当递归超过这个限制时,python会抛出RecursionError异常。这个数也可以使用sys.setrecursionlimit(数值)设置。

>>> sys.getrecursionlimit()
1000
>>> sys.setrecursionlimit(500)
>>> sys.getrecursionlimit()
500
>>> sys.setrecursionlimit(1000)
>>> sys.getrecursionlimit()
1000
>>> 

4、sys.getdefaultencoding() 获取当前文件系统的默认编码格式。

>>> sys.getfilesystemencoding()
'utf-8'
>>>

5、sys.modules.keys() 获取sys.modules模块下keys键。即所有已导入的模块名。

>>> sys.modules.keys()
dict_keys(['sys', 'builtins', '_frozen_importlib', '_imp', '_thread', '_warnings', '_weakref', '_io', 'marshal', 'nt', 'winreg', '_frozen_importlib_external', 'time', 'zipimport', '_codecs', 'codecs', 'encodings.aliases', 'encodings', 'encodings.utf_8', '_codecs_cn', '_multibytecodec', 'encodings.gbk', '_signal', 'encodings.latin_1', '_abc', 'abc', 'io', '__main__', '_stat', 'stat', '_collections_abc', 'genericpath', 'ntpath', 'os.path', 'os', '_sitebuiltins', '_locale', '_bootlocale', 'site', 'idlelib', '_heapq', 'heapq', 'itertools', 'keyword', '_operator', 'operator', 'reprlib', '_collections', 'collections', 'types', '_functools', 'functools', 'enum', '_sre', 'sre_constants', 'sre_parse', 'sre_compile', 'copyreg', 're', 'token', 'tokenize', 'linecache', '_weakrefset', 'threading', '_queue', 'queue', 'textwrap', 'traceback', 'warnings', '_string', 'string', 'errno', 'signal', 'contextlib', 'msvcrt', '_winapi', 'subprocess', 'platform', '_tkinter', 'tkinter.constants', 'tkinter', 'idlelib.multicall', 'idlelib.autocomplete_w', 'collections.abc', 'configparser', 'idlelib.config', 'idlelib.pyparse', 'idlelib.hyperparser', 'idlelib.autocomplete', '_ast', 'ast', '_opcode', 'opcode', 'dis', 'importlib._bootstrap', 'importlib._bootstrap_external', 'importlib', 'importlib.machinery', 'inspect', 'idlelib.tooltip', 'idlelib.calltip_w', 'idlelib.calltip', 'posixpath', 'fnmatch', 'bdb', 'binascii', 'math', '_datetime', 'datetime', '_struct', 'struct', 'xml', 'xml.parsers', 'pyexpat.errors', 'pyexpat.model', 'pyexpat', 'xml.parsers.expat.model', 'xml.parsers.expat.errors', 'xml.parsers.expat', 'plistlib', 'idlelib.macosx', 'idlelib.scrolledlist', 'idlelib.window', 'idlelib.debugger', 'idlelib.debugger_r', '_compat_pickle', '_pickle', 'pickle', 'select', '_socket', 'selectors', 'socket', 'socketserver', 'idlelib.rpc', 'idlelib.debugobj_r', 'shlex', 'zlib', '_compression', '_bz2', 'bz2', '_lzma', 'lzma', 'shutil', '_bisect', 'bisect', '_random', '_sha512', 'random', 'weakref', 'tempfile', 'idlelib.util', 'idlelib.iomenu', 'idlelib.zoomheight', 'idlelib.tree', 'idlelib.debugobj', 'idlelib.stackviewer', 'idlelib.run', 'typing.io', 'typing.re', 'typing', 'importlib.abc', 'importlib.util', 'pkgutil', 'sysconfig', 'urllib', 'urllib.parse', 'pydoc'])
>>>
>>> if 'os' in sys.modules.keys():
...     os_module = sys.modules['os']
...     print({os_module.__file__})
...
{'/usr/lib/python3.5/os.py'}
>>>

6、sys.getswitchinterval() 获取解释器当前设置的线程切换时间间隔,间隔以秒为单位,这个间隔决定了在python代码执行期间,线程在执行多长时间后自动让出控制权,允许其他线程运行。

>>> sys.getswitchinterval()
0.005
>>>

四、模块属性

1、sys.argv   argv是一个列表,它包含了命令行参数的列表。执行脚本时,若需要在执行时传入参数。

>>> sys.argv
['']
>>> sys.argv[0]
''
>>>

2、sys.version 获取解释器的版本

>>> sys.version
'3.5.1 (default, Dec 16 2015, 11:43:00) \n[GCC 5.3.0 20151204 (iSoft 5.3.0-12)]'
>>>

3、sys.platform 返回字符串表明运行操作系统的平台

>>> sys.platform
'linux'
>>>

4、sys.copyright 获取当前python解释器的版权信息

>>> sys.copyright
'Copyright (c) 2001-2015 Python Software Foundation.\nAll Rights Reserved.\n\nCopyright (c) 2000 BeOpen.com.\nAll Rights Reserved.\n\nCopyright (c) 1995-2001 Corporation for National Research Initiatives.\nAll Rights Reserved.\n\nCopyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.\nAll Rights Reserved.'
>>> sys.hexversion
50659824
>>>

5、sys.path 定义了python解释器的模块搜索路径,当尝试导入一个模块时,python会在sys.path列表中的每个目录里查找该模块。

>>> sys.path
['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-linux', '/usr/lib/python3.5/lib-dynload', '/usr/lib/python3.5/site-packages', '/usr/lib/python3.5/site-packages/FontTools']
>>>

6、sys.byteorder  表示当前系统的字节序(也成端序),字节序定义类多字节数据类型的存储顺序,他可以是little或big

>>> sys.byteorder
'little'
>>>

7、sys.getsizeof() 获取当前对象的大小。以字节为单位。

>>> lst = [1,2,3,4,5]
>>> size = sys.getsizeof(lst)
>>> print(size)
104
>>>


http://www.ppmy.cn/ops/142906.html

相关文章

python基础:(八)文件

目录 一.从文件中读取数据1.1读取整个文件1.2文件路劲1.3逐行读取 二.写入文件 一.从文件中读取数据 各位小伙伴,文件这一块得好好学,多看多敲代码,以后处理数据,写爬虫少不了这个,先从基础(简单的&#x…

算法学习之贪心算法

前言 记录一下,免得又又忘了 贪心算法 在刚接触的时候,我一直觉得贪心和动态规划有相似之处,但做过的题目看,贪心似乎不用迭代

如何在OpenCV中运行自定义OCR模型

我们首先介绍如何获取自定义OCR模型,然后介绍如何转换自己的OCR模型以便能够被opencv_dnn模块正确运行,最后我们将提供一些预先训练的模型。 训练你自己的 OCR 模型 此存储库是训练您自己的 OCR 模型的良好起点。在存储库中,MJSynthSynthTe…

vscode中插件ofExtensions的debug模式也无法查看U、p等openfoam中foam类型的变量

插件介绍: 主要内容如下: 以自编译的$HOME/OpenFOAM-7例,如果OFdebugopt设置为WM_COMPILE_OPTIONDebug,那最终的激活环境的命令为source $HOME/OpenFOAM/OpenFOAM-8/etc/bashrc WM_COMPILE_OPTIONDebug,这时候$FOAM_…

【Go卸载时:遇到无法卸载情况】

进入go,先把之前的版本下载一遍,进入后点击repair。 go下载地址:https://go.dev/dl/ 然后下载新版本即可

多维高斯分布

高斯分布(Gaussian Distribution) 高斯分布,又称正态分布,是一种最常见的概率分布形式,广泛应用于统计学、机器学习和自然科学等领域。 高斯分布的概率密度函数(PDF) 对于给定的均值 μ 和方差…

VirtualBox使用教程

VirtualBox是一款由Oracle公司开发的开源虚拟机软件,支持在主机操作系统上运行多个虚拟化的操作系统。本文将介绍如何安装VirtualBox、创建虚拟机以及一些常见的设置技巧。 一、VirtualBox的安装 1. 下载VirtualBox 访问VirtualBox的官方网站(https:/…

蓝桥杯python赛道我来了

最近蓝桥杯报名快要截止了,我们学校开始收费了,我们学校没有校赛,一旦报名缴费就是省赛,虽然一早就在官网上报名了,但是一直在纠结,和家人沟通,和朋友交流,其实只是想寻求外界的支持…