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

Posted fanstuck

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python常用标准库-sys库一文详解相关的知识,希望对你有一定的参考价值。

目录

前言

 一、Sys库概述

二、Sys查看版本信息

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

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

3.sys.getwindowsversion系统功能版本

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

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

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

 三、四大实现详细信息

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

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

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

4.sys.thread_info获取线程信息

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

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

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

 3.获取当前递归的限制

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

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

 6. 获取python的安装路径

 五、设置解释器性能

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

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

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

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

1.获取平台标识

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

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

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

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

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

 7.获取对象的引用次数

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

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

 10.获取 unicode 编码的最大值

 11.获取本地的字节顺序

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

 13.获取python模块的信息

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢


前言

补全一下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库一文详解:文件操作和路径操作

目录

前言

文件操作

一、读写文件

1.读文件

2.写文件

二、创建文件

三、删除文件

四、重命名文件

五、文件判断

路径操作

1.拼接

2. 分离路径

3.获取路径中的文件名

4.获取路径中的路径名

5.获取绝对路径

6.分离文件拓展名

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢


前言

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库一文详解的主要内容,如果未能解决你的问题,请参考以下文章

Python常用标准库之sys

Python常用标准库之sys

Python常用标准库之sys

Python标准库之Sys模块使用详解

第十章 Python常用标准库使用(必会)

Python标准库之os库常用功能详解