Python常用标准库-sys库一文详解
Posted fanstuck
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python常用标准库-sys库一文详解相关的知识,希望对你有一定的参考价值。
目录
2.sys.api_version获取解释器中C的API版本
4.sys.hexversion()获取Python解释器的版本值
5.sys.implementation获取当前正在运行的Python解释器的实现信息的对象
6.sys.winver获取Windows平台上形成注册表项的版本号
4.获取在Unicode文件名和字节文件名之间转换的错误模式的名称
5.获取在Unicode文件名和字节文件名之间转换的编码名称
前言
补全一下Python的基础库功能篇,之前一直写pandas和机器学习模型,偶尔换个口味写写基础的。下一作专栏估计会将文本挖掘技术和爬虫技术结合起来出一期,敬请期待。
Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。
本章内容主要讲述Python16个常用的标准库中的sys功能API操作和实践。
一、Sys库概述
该模块提供对解释器使用或维护的一些变量的访问,以及对与解释器强烈交互的函数的访问。
二、Sys查看版本信息
1.sys.version获取Python版本信息
print(sys.version)
2.sys.api_version获取解释器中C的API版本
print(sys.api_version)
3.sys.getwindowsversion系统功能版本
print(sys.getwindowsversion())
4.sys.hexversion()获取Python解释器的版本值
print(sys.hexversion)
5.sys.implementation获取当前正在运行的Python解释器的实现信息的对象
print(sys.implementation)
# name 当前解释器的名称
# version 当前解释器的版本
# hexversion 解释器的版本值
# cache_tag 缓存标记信息
# 获取Windows平台上形成注册表项的版本号
6.sys.winver获取Windows平台上形成注册表项的版本号
print(sys.winver)
三、四大实现详细信息
1.sys.float_info获取浮点类型的实现信息
print(sys.float_info)
2. sys.hash_info获取哈希元组的实现信息
print(sys.hash_info)
3.sys.int_info获取整形实现信息
print(sys.int_info)
4.sys.thread_info获取线程信息
print(sys.thread_info)
四、查看Python解释器的相关信息
1.获取Python解释器导入的内建模块列表
print(sys.builtin_module_names)
2.获取解释器当前分配的内存块数
此函数主要用于跟踪和调试内存泄漏
print(sys.getallocatedblocks())
3.获取当前递归的限制
也就是Python解释器堆栈最大深度的值,该限制可防止无限递归导致C堆栈溢出和Python崩溃,可以通过setrecursionlimit()来调整。
print(sys.getrecursionlimit())
4. 获取解释器的“线程切换间隔
print(sys.getswitchinterval())
5. 获取解释器的安装路径信息
print(sys.base_exec_prefix)
print(sys.base_prefix)
6. 获取python的安装路径
print(sys.prefix)
五、设置解释器性能
设置Python解释器的最大堆栈深度
sys.setrecursionlimit()
设置解释器的线程切换间隔,单位为秒
sys.setswitchinterval()
六、标准输入、输出和错误流
- sys.stdin, 标准输入流
- sys.stdout,标准输出流
- sys.stderr,标准错误流
七、查看系统平台相关信息
1.获取平台标识
print(sys.platform)
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())
4.获取在Unicode文件名和字节文件名之间转换的错误模式的名称
print(sys.getfilesystemencodeerrors())
5.获取在Unicode文件名和字节文件名之间转换的编码名称
print(sys.getfilesystemencoding())
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)
10.获取 unicode 编码的最大值
print(sys.maxunicode)
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)
13.获取python模块的信息
print(sys.modules)
print(sys.modules['os'])
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。
Python常用标准库-os库一文详解:文件操作和路径操作
目录
前言
Python的os(Operating System)库是一个用于与操作系统进行交互的标准库,它提供了许多有用的函数和变量,用于访问文件系统、环境变量、进程、管道、用户和组等操作系统相关的功能。
这里我为大家总结了所有OS库里面的各类功能常用函数:
有这张思维导图基本就够了,基本涵盖所有涉及到的Python基础系统路径操作功能函数了。当然还有很多关于这些函数细节的,需要辅以实际代码展示例子,以更直观的看到每个函数该如何使用和操作。
关于OS库的功能还是挺多的, 尤其是文件和目录操作,其实掌握这些sys和os的函数操作之后,就可以实现较高级的脚本编程,可以随心所欲的控制自己电脑发出任何操作和指令,比鼠标点击更加高效更灵活,或者可以自己编写一些脚本发给其他人的实现一些意想不到的效果。
文件操作
- 文件的IO操作完成后必须关闭连接对象
- flags多个值时以|隔开
常用的flags:
- os.O_RDONLY: 以只读的方式打开
- os.O_WRONLY: 以只写的方式打开
- os.O_RDWR : 以读写的方式打开
- os.O_NONBLOCK: 打开时不阻塞
- os.O_APPEND: 以追加的方式打开
- os.O_CREAT: 创建或打开文件
- os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
一、读写文件
常用格式 os.open(path, flags, mode), mode一般为Linux系统文件操作的参数 ,设置文件权限。
以只读权限打开config文件,文件不存在时报错,先判断是否存在 再进行操作,必要时需先判断是否为文件。
1.读文件
if os.path.lexists(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt'):
fd = os.open(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt',os.O_RDONLY)
print(os.read(fd, 9))
os.close(fd)
else:
pass
2.写文件
将文件的前N个字符替换为新的字符,替换长度由替换的内容长度决定
fd1 = os.open(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt', os.O_WRONLY)
os.write(fd1, bytes('python', 'UTF-8')) # 文件的读写都是以字节类型存取
os.close(fd1)
文件存在打开,文件不存在新增
# 文件存在打开,文件不存在新增
fd2 = os.open(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt', os.O_RDWR)
print(os.read(fd2, 10))
os.write(fd2, bytes('java', 'UTF-8'))
print(os.read(fd2, 10))
os.close(fd2)
追加模式打开文件,必须具有写权限
# 追加模式打开文件,必须具有写权限
fd3 = os.open(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt', os.O_RDWR | os.O_APPEND)
print(os.read(fd3, 100))
os.write(fd2, bytes('php', 'UTF-8'))
os.close(fd2)
二、创建文件
创建空文件
# 创建空文件
fd = os.open(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile1.txt', os.O_CREAT)
os.close(fd)
创建文件并写入数据时须具有写权限
# 创建文件并写入数据时须具有写权限
fd = os.open(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile2.txt', os.O_CREAT | os.O_RDWR)
os.write(fd, bytes('Fanstuck', 'UTF-8'))
os.close(fd)
三、删除文件
# 文件不存在时报错
if os.path.lexists(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile2.txt'):
os.remove(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile2.txt')
else:
print("文件不存在")
四、重命名文件
这里注意一下,rename(one,two)第一个one参数以相对路径默认,可以输入绝对路径和相对路径,而two也是一样,若two不指定绝对路径则就在该python文件目录下。
# 文件不存在时报错
if os.path.lexists(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile1.txt'):
os.rename(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile1.txt','txtfile2.txt')
else:
print("文件不存在")
五、文件判断
判断是否存在用exists,是否为文件用isfile。
# coding:utf-8
import os
# 文件是否存在
print(os.path.exists(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt')) # true
# 是否为文件
print(os.path.isfile(r'C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt')) # True
路径操作
1.拼接
print(os.path.join("txt", 'file', 'user1', 'server.log'))
2. 分离路径
print(os.path.split(r"C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt"))
3.获取路径中的文件名
print(os.path.basename(r"C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt"))
4.获取路径中的路径名
print(os.path.dirname(r"C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt"))
5.获取绝对路径
print(os.path.abspath(r"newTest\\txtfile.txt"))
6.分离文件拓展名
print(os.path.splitext(r"C:\\Users\\10799\\get_info\\OS\\newTest\\txtfile.txt"))
点关注,防走丢,如有纰漏之处,请留言指教,非常感谢
以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。
以上是关于Python常用标准库-sys库一文详解的主要内容,如果未能解决你的问题,请参考以下文章