Python的常用基础模块之sys模块详解

 更新时间:2023年08月01日 11:06:30   作者:Amo Xiang  
这篇文章主要介绍了Python的常用基础模块之sys模块详解,sys 模块提供访问 Python 解释器使用或维护的属性,以及与 Python 解释器进行交互的方法,需要的朋友可以参考下

一、sys模块介绍

1.1 什么是 Python 解释器

当编写 Python 代码时,通常都会得到一个包含 Python 代码的以 .py 为扩展名的文件。

要运行编写的代码,就需要使用 Python 解释器去执行 .py 文件。

因此,Python 解释器就是用来执行 Python 代码的一种工具。常见的 Python 解释器有以下几种:

  • CPython:Python 的官方解释器。

当我们从 Python 官方网站下载并安装好 Python 后,就直接获得了 CPython 解释器,该解释器是使用 C 语言开发的,所以叫 CPython。

我们在 CMD 命令窗口中运行 python 命令就是启动 CPython 解释器,如下图所示:

在这里插入图片描述

  • IPython :IPython 是基于 CPython 之上的一个交互式解释器,它执行 Python 代码的功能和 CPython 是完全一样的,唯一的区别是:CPython 用 >>> 作为提示符,而 IPython 用 In[ 序号]: 作为提示符。

在这里插入图片描述

  • PyPy :PyPy 解释器的目标是执行速度,它采用 JIT 技术,对 Python 代码进行动态编译,所以可以显著提高 Python 代码的执行速度。
  • Jython:运行在 Java 平台上的 Python 解释器,可以直接把 Python 代码编译成 Java 字节码执行。
  • IronPython :运行在微软 .NET 平台上的 Python 解释器,可以直接把 Python 代码编译成 .NET 的中间代码。

1.2 sys 模块的作用

sys 模块提供访问 Python 解释器使用或维护的属性,以及与 Python 解释器进行交互的方法。

简单来讲,sys 模块负责程序与 Python 解释器的交互,并提供了一系列的属性和方法,用于操控 Python 运行时的环境。

在 Python 程序中使用 sys 模块,首先需要使用 import 导入,代码如下:

import sys

导入 sys 模块后,就可以使用该模块提供的属性和方法了。

二、常用方法及属性介绍

2.1 modules属性

将模块名称映射到已加载模块的字典

modules 属性返回一个将模块名称映射到已加载模块的字典。语法格式如下:

sys.modules  # 返回值:返回一个字典

使用 modules 属性获取本机所有已安装的模块及所在模块文件,代码如下:

import sys
for key, value in sys.modules.items():  # 遍历所有模块字典
    print(f'{key}:{value}')  # 打印模块及所在模块文件

程序运行结果如下:

在这里插入图片描述

使用 modules 属性获取 os 模块的来源,代码如下:

import sys
# <module 'os' from 'd:\\developsoftware\\python37\\lib\\os.py'>
print(sys.modules["os"])

使用 modules 对象的 keys() 方法可以获取到所有导入的模块列表,代码如下:

import sys
print('模块列表:')
for i in sys.modules.keys():  # 遍历模块列表
    print('' + i)  # 打印模块

2.2 getdefaultencoding()方法

获取默认字符串编码名称

getdefaultencoding() 方法用于返回当前默认字符串编码的名称,语法格式如下:

sys.getdefaultencoding()

参数说明:返回值:返回类似 ascii、utf-8 或者 gbk 等的字符串,具体的值根据 site.py 模块中设置的默认编码而定。

使用 getdefaultencoding() 方法获取本地 Python 解释器使用的默认字符串编码,代码如下:

import sys
print(sys.getdefaultencoding())  # utf-8

2.3 exit()方法

退出Python

exit() 方法用于退出 Python 解释器,即退出正在运行的程序。语法格式如下:

sys.exit([arg])

参数说明:

  • arg :可选参数,该参数是一个整数,表示退出状态。0 表示正常退出,非 0 表示异常终止。如果指定为一个非整数值,则将它打印到 sys.stderr,并使用退出码 1。
  • 返回值:返回退出码,0 表示正常退出,1 表示异常退出。

说明:arg 参数的取值范围通常在 0~127 范围内,否则会产生不确定的结果。

正常退出程序的代码如下:

import sys
print(11)
sys.exit(0)

程序运行结果如下:

在这里插入图片描述

通过为 exit() 方法指定非 0 参数异常终止程序,代码如下:

import sys
print(11)
sys.exit(1)
print(22)

程序运行结果如下:

在这里插入图片描述

2.4 path属性

指定模块搜索路径

path 属性用于获取一个字符串列表,它指定模块的搜索路径。在程序启动时,此列表的第一项 path[0] 通常是 Python 脚本(.py 文件) 所在的目录。如果脚本目录不可用(例如,交互式调用解释器或者从标准输入读取脚本),则 path[0] 为空字符串,它指示 Python 首先搜索当前目录中的模块。语法格式如下:

sys.path

使用 path 属性获取 Python 解释器的模块搜索路径,并遍历输出,代码如下:

import sys
for i in sys.path:  # 遍历所有路径列表
    print(i)  # 打印遍历到的路径

程序运行结果如下:

E:\Code\lesson\python-package
E:\Code\lesson
D:\DevelopSoftware\PyCharm2021.3.3\PyCharm 2021.3.3\plugins\python\helpers\pycharm_display
d:\developsoftware\python37\python37.zip
d:\developsoftware\python37\DLLs
d:\developsoftware\python37\lib
d:\developsoftware\python37
E:\Code\scrapy_study\venv
E:\Code\scrapy_study\venv\lib\site-packages
D:\DevelopSoftware\PyCharm2021.3.3\PyCharm 2021.3.3\plugins\python\helpers\pycharm_matplotlib_backend

使用 path 属性的 append() 方法向模块搜索路径中添加 ./module,然后遍历输出最新的模块搜索路径,代码如下:

import sys
sys.path.append("./module") # 添加模块搜索路径

2.5 argv属性

程序命令行参数列表

argv 属性表示传递给 Python 脚本的命令行参数列表。argv[0] 是脚本名称(取决于操作系统是否为完整路径名)。语法格式如下:

sys.argv

通过使用 argv 属性获取 Python 解释器的命令行参数列表,并使用 argv[0] 获取 Python 脚本的完整路径,代码如下:

在这里插入图片描述

通过使用 os 模块的 fsencode() 方法获取命令行参数的原始字节,代码如下:

import sys
import os
for arg in sys.argv:
    print(os.fsencode(arg))

程序运行结果如下:

b'E:/Code/lesson/python-package/demo5_sys.py'

注意:在 Unix 系统中,命令行参数是从 OS 传递的字节。Python 使用文件系统编码和 surrogateescape 错误处理程序对它们进行解码。

2.6 platform属性

获取系统标识符

platform 属性返回一个表示系统标识符的字符串。语法格式如下:

sys.platform

操作系统及对应的 platform 值如下表所示:

在这里插入图片描述

用 platform 属性判断当前系统平台为哪个平台,代码如下:

import sys
if sys.platform == 'win32':
    print('当前是Windows平台')
elif sys.platform == 'linux':
    print('当前是Linux平台')
elif sys.platform == 'darwin':
    print('当前是Mac平台')

笔者使用的是 Windows 平台,故程序运行结果如下:

在这里插入图片描述

到此这篇关于Python的常用基础模块之sys模块详解的文章就介绍到这了,更多相关Python的sys模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python函数isalnum用法示例小结

    Python函数isalnum用法示例小结

    isalnum()函数是Python中的一个内置函数,用于判断字符串是否只由数字和字母组成,其内部实现原理比较简单,只需遍历字符串中的每一个字符即可,这篇文章主要介绍了Python函数isalnum用法介绍,需要的朋友可以参考下
    2024-01-01
  • 详解如何用Flask中的Blueprints构建大型Web应用

    详解如何用Flask中的Blueprints构建大型Web应用

    Blueprints是Flask中的一种模式,用于将应用程序分解为可重用的模块,这篇文章主要为大家详细介绍了如何使用Blueprints构建大型Web应用,需要的可以参考下
    2024-03-03
  • Python对象的属性访问过程详解

    Python对象的属性访问过程详解

    这篇文章主要介绍了Python对象的属性访问过程详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • PyTorch快速搭建神经网络及其保存提取方法详解

    PyTorch快速搭建神经网络及其保存提取方法详解

    本篇文章主要介绍了PyTorch快速搭建神经网络及其保存提取方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 手把手教你怎么用Python实现zip文件密码的破解

    手把手教你怎么用Python实现zip文件密码的破解

    之前在家里的老电脑中,发现一个加密zip压缩包,由于时隔太久忘记密码了,依稀记得密码是6位字母加数字,网上下载了很多破解密码的软件都没有效果,于是想到自己用Python写一个暴力破解密码的脚本,需要的朋友可以参考下
    2021-05-05
  • Python字典取值全攻略之高效、简洁地获取字典值的多种技巧

    Python字典取值全攻略之高效、简洁地获取字典值的多种技巧

    这篇文章主要给大家介绍了关于Python字典取值全攻略之高效、简洁地获取字典值的多种技巧,dictionary(字典)是除列表以外Python之中最灵活的数据类型,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • pygame可视化幸运大转盘实现

    pygame可视化幸运大转盘实现

    这篇文章主要介绍了pygame可视化幸运大转盘实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python连接SQLite数据库操作实战指南从入门到精通

    Python连接SQLite数据库操作实战指南从入门到精通

    在Python中使用SQLite进行数据库操作时,我们将深入研究SQLite数据库的创建、表格管理、数据插入、查询、更新和删除等关键主题,帮助你全面了解如何使用SQLite进行数据库操作
    2023-11-11
  • 关于探究python中sys.argv时遇到的问题详解

    关于探究python中sys.argv时遇到的问题详解

    这篇文章主要给大家介绍了python里sys.argv时遇到问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • OpenCV 之按位运算举例解析

    OpenCV 之按位运算举例解析

    这篇文章主要介绍了OpenCV之按位运算举例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论