### 一、sys模块概述
Python 的 sys 模块提供访问解释器使用或维护的变量,和与解释器进行交互的函数。通俗来讲,sys 模块为程序与 python 解释器的交互,提供了一系列的函数和变量,用于操控 Python 运行时的环境。
sys 模块是 Python 中内置的模块,所以不需要再单独安装,只需在使用前 import sys 即可。
sys模块是与python解释器交互的一个接口, sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。
我们可以通过 dir() 方法查看模块中可用的方法。结果如下:
1 | >>> import sys |
二、sys模块的常见用法
1、sys.argv — 实现从程序外部向程序传递参数
sys.argv 变量是一个包含了命令行参数的字符串列表,利用命令行向程序传递参数。其中,脚本的名称总是 sys.argv 列表的第一个参数。
1 | import sys |
2、sys.path
获取指定模块搜索路径的目录名列表,列表中的第一项为当前的工作目录。跟linux中的PATH变量一样的,如果想直接执行命令,必须放在PATH提供的路径或自己添加一个路径进去。这里主要是import导入的时候就是从这里面去找对就的模块名在不在这里面,没有就不能导入。
1 | import sys |
3、sys.exit([arg])
一般情况下执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用 sys.exit() 函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对 sys.exit() 的调用。(0是正常退出,其他为异常)当然也可以用字符串参数,表示错误不成功的报错信息。
下面的例子,首先打印 ‘Hello’,执行完 sys.exit(1),执行 except 语句,将 ‘中途退出’ 作为参数传递给函数 exitfunc(),然后将 ‘中途退出’ 打印出来,程序正常退出,不执行后面的 print(“Welcome”) 语句。
1 | import sys |
4、sys.version — 获取Python版本的信息。
1 | >>> import sys |
5、sys.platform — 获取当前的系统平台,返回操作系统的名称。
1 | >>> import sys |
6、sys.modules、sys.modules.keys()、sys.modules.values()
sys.modules 是一个全局字典,该字典是 Python 启动后就加载在内存中。每当程序员导入新的模块,sys.modules 将自动记录该模块。当第二次再导入该模块时,Python 会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法。
1 | >>>import sys |
7、sys.stdout、sys.stdin、sys.stderr
sys.stdin:标准输入;stdout:标准输出;stderr:错误输出
stdin,stdout 以及 stderr 变量包含与标准I/O 流对应的流对象。如果需要更好地控制输出,而 print 不能满足你的要求,它们就是你所需要的。你也可以替换它们,这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们。
1 | >>> import sys |
8、sys.getdefaultencoding() 、 sys.getfilesystemencoding()
1 | sys.getdefaultencoding() : 获取解释器默认编码。 |
二、sys模块的应用
在下面的例子中,应用了 sys 模块中的 argv 实现了从程序外部向程序传递函数,以此来实现不同参数个数的 ping 命令。
1 | import os |