likes
comments
collection
share

Python常用标准库-sys库一文详解

作者站长头像
站长
· 阅读数 13

Python常用标准库-sys库一文详解

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 21 天,点击查看活动详情

前言

补全一下Python的基础库功能篇,之前一直写pandas和机器学习模型,偶尔换个口味写写基础的。下一作专栏估计会将文本挖掘技术和爬虫技术结合起来出一期,敬请期待。

Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。

本章内容主要讲述Python16个常用的标准库中的sys功能API操作和实践。

Python常用标准库-sys库一文详解

该模块提供对解释器使用或维护的一些变量的访问,以及对与解释器强烈交互的函数的访问。

二、Sys查看版本信息

1.sys.version获取Python版本信息

print(sys.version)

Python常用标准库-sys库一文详解

2.sys.api_version获取解释器中C的API版本

print(sys.api_version)

3.sys.getwindowsversion系统功能版本

print(sys.getwindowsversion()) 

4.sys.hexversion()获取Python解释器的版本值

print(sys.hexversion)

Python常用标准库-sys库一文详解

5.sys.implementation获取当前正在运行的Python解释器的实现信息的对象

print(sys.implementation)

Python常用标准库-sys库一文详解

  • # name 当前解释器的名称
  • # version 当前解释器的版本
  • # hexversion 解释器的版本值
  • # cache_tag 缓存标记信息
  • # 获取Windows平台上形成注册表项的版本号

6.sys.winver获取Windows平台上形成注册表项的版本号

print(sys.winver)

Python常用标准库-sys库一文详解

三、四大实现详细信息

1.sys.float_info获取浮点类型的实现信息

print(sys.float_info)

Python常用标准库-sys库一文详解

2. sys.hash_info获取哈希元组的实现信息

print(sys.hash_info)

Python常用标准库-sys库一文详解

3.sys.int_info获取整形实现信息

print(sys.int_info)

Python常用标准库-sys库一文详解

4.sys.thread_info获取线程信息

print(sys.thread_info)

Python常用标准库-sys库一文详解

四、查看Python解释器的相关信息

1.获取Python解释器导入的内建模块列表

print(sys.builtin_module_names)

Python常用标准库-sys库一文详解

2.获取解释器当前分配的内存块数

此函数主要用于跟踪和调试内存泄漏

print(sys.getallocatedblocks())

Python常用标准库-sys库一文详解

3.获取当前递归的限制

也就是Python解释器堆栈最大深度的值,该限制可防止无限递归导致C堆栈溢出和Python崩溃,可以通过setrecursionlimit()来调整。

print(sys.getrecursionlimit())

Python常用标准库-sys库一文详解

4. 获取解释器的“线程切换间隔

print(sys.getswitchinterval())

Python常用标准库-sys库一文详解

5. 获取解释器的安装路径信息

print(sys.base_exec_prefix)
print(sys.base_prefix)

Python常用标准库-sys库一文详解

6. 获取python的安装路径

print(sys.prefix)

Python常用标准库-sys库一文详解

五、设置解释器性能

设置Python解释器的最大堆栈深度

sys.setrecursionlimit()

设置解释器的线程切换间隔,单位为秒

sys.setswitchinterval()

六、标准输入、输出和错误流

  • sys.stdin, 标准输入流
  • sys.stdout,标准输出流
  • sys.stderr,标准错误流

七、查看系统平台相关信息

1.获取平台标识

print(sys.platform)

Python常用标准库-sys库一文详解

Windows平台的值为‘win32',linux的值为‘linux'。

2.获取当前平台最大的整形值

print(sys.maxsize, 2**(64-1) - 1)

与平台位数相关,32位系统平台 为 2**(31-1) -1 ,64位平台为2**(64-1)-1

3.获取当前的默认字符串编码格式

print(sys.getdefaultencoding())

Python常用标准库-sys库一文详解

4.获取在Unicode文件名和字节文件名之间转换的错误模式的名称

print(sys.getfilesystemencodeerrors())

Python常用标准库-sys库一文详解

5.获取在Unicode文件名和字节文件名之间转换的编码名称

print(sys.getfilesystemencoding())

Python常用标准库-sys库一文详解

6.获取由setprofile()设置的全局配置。

print(sys.getprofile())

7.获取对象的引用次数

print(sys.getrefcount(element))

8.获取对象的大小,单位为字节

print(sys.getsizeof(256))

9. 获取repr()函数对浮点数x的行为方式

short表示repr(x)生成短字符串

print(sys.float_repr_style)

Python常用标准库-sys库一文详解

10.获取 unicode 编码的最大值

print(sys.maxunicode)

Python常用标准库-sys库一文详解

11.获取本地的字节顺序

不同的CPU采用的字节顺序可能不一样;常见的有little-endian和big-endian; little-endian是指将低位字节放在前面,高位字节放在后面,big-endian刚好相反; sys.byteorder返回值为little为little-endian,big为big-endian

print(sys.byteorder)

12.获取模块搜索路径的列表

由环境变量PYTHONPATH进行初始化及安装时的默认值组成

print(sys.path)

Python常用标准库-sys库一文详解

13.获取python模块的信息

print(sys.modules)

Python常用标准库-sys库一文详解

print(sys.modules['os'])