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安装Gradio和常见安装问题解决办法

    Python安装Gradio和常见安装问题解决办法

    Gradio是一款便捷的Python库,专门用于创建机器学习模型的Web应用,安装通常简单,但偶尔会遇到依赖问题或环境配置错误,这篇文章主要介绍了Python安装Gradio和常见安装问题解决办法,需要的朋友可以参考下
    2024-10-10
  • anaconda中Conda创建虚拟环境的实现步骤

    anaconda中Conda创建虚拟环境的实现步骤

    在Anaconda中,可以使用conda命令来创建和管理虚拟环境,本文主要介绍了anaconda中Conda创建虚拟环境的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • windows中python实现自动化部署

    windows中python实现自动化部署

    本文主要介绍了windows中python实现自动化部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • python3 简单实现组合设计模式

    python3 简单实现组合设计模式

    这篇文章主要介绍了python3 简单实现组合设计模式的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • python读取word文档的方法

    python读取word文档的方法

    这篇文章主要介绍了python读取word文档的方法,实例分析了Python基于win32com操作word文档的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 实例讲解Python脚本成为Windows中运行的exe文件

    实例讲解Python脚本成为Windows中运行的exe文件

    在本篇文章里小编给大家分享了关于Python脚本成为Windows中运行的exe文件的相关知识点内容,有兴趣的朋友们学习下。
    2019-01-01
  • python实现简单socket程序在两台电脑之间传输消息的方法

    python实现简单socket程序在两台电脑之间传输消息的方法

    这篇文章主要介绍了python实现简单socket程序在两台电脑之间传输消息的方法,涉及Python操作socket的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • python使用ctypes库调用DLL动态链接库

    python使用ctypes库调用DLL动态链接库

    这篇文章主要介绍了python如何使用ctypes库调用DLL动态链接库,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-10-10
  • Python内建类型float源码学习

    Python内建类型float源码学习

    这篇文章主要为大家介绍了Python内建类型float源码学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 基于Python编写一个词云制作程序

    基于Python编写一个词云制作程序

    这篇文章主要为大家详细介绍了如何基于Python编写一个简单的词云制作程序,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-10-10

最新评论