Python之sys模块
[TOC]
sys模块介绍
sys全称system系统,该模块提供了系统相关的参数和函数,这些变量和方法可供Python解释器交互,用于操控运行时的环境。
什么是Python解释器
python是一种语言,而这种语言是对程序员来说的,计算机系统并不能理解,所以有了python解释器。
python解释器是一个软件,用于解析和执行Python程序。
Python解释器有多种实现:
CPython是Python的官方解释器,它是基于C语言开发的,将Python代码解释成C语言的中间代码,然后再通过编译器将C代码转换为机器码执行。
IPython 是基于 CPython 之上的一个交互式解释器,旨在提供更快的执行速度。它通过即时编译(JIT)技术将Python代码直接转换为机器码,而不需要中间过程。
PyPy :PyPy 解释器的目标是执行速度,它采用 JIT 技术,对 Python 代码进行动态编译,所以可以显著提高 Python 代码的执行速度。
Jython:运行在 Java 平台上的 Python 解释器,可以直接把 Python 代码编译成 Java 字节码执行。
具体功能和方法介绍
参考文档
基础方法
1 | sys.version #还有sys.version_info |
sys.argv
一个列表,包含了被传递给python脚本的命令行参数。
- argv[0]:程序本身的路径
- argv[1]:程序的第一个参数
1 | >>python helloworld.py -b |
sys.exit()
此方法用于退出python解释器,即退出运行。
1 | #正常退出程序 |
sys.modules
一个字典,获取本机所有已安装的模块及所在模块文件
1 | sys.modules['os'] |
sys.path
一个列表,包含python相关的路径,这些是模块的搜索路径。第一项path[0]为该.py脚本所在目录。下面图片中是在控制台中,所以第一项为空字符串。
作用:有时候程序运行的环境不同,模块的路径会出现问题,可以通过sys.path.append(root_path)添加到里面。
sys.stdin&sys.stdout&sys.stderr
文件对象,标准输入,标准输出,错误输出
stdin
用于所有交互式输入(包括对input()
的调用);stdout
用于print()
和 expression 语句的输出,以及用于input()
的提示符;- 解释器自身的提示符和它的错误消息都发往
stderr
。
1 | sys.stdin.readline() #等价于input() |
sys.getdefaultencoding()
1 | sys.getdefaultencoding() |
文件系统编码是指用于在操作系统文件系统中表示和存储文件名和路径的字符编码。不同的操作系统和文件系统可能使用不同的字符编码来处理文件名和路径。
sys.exc_info()
元组,包含当前异常类型、异常对象和跟踪栈信息:
- 异常类型:表示引发异常的类型。
- 异常对象:表示当前异常的实例对象。
- 跟踪栈信息:表示导致异常的函数调用栈信息
举例,10/0的错误:
1 | import sys |
help(sys)
该文章第三节有详细翻译:python之sys模块详解