sys模块

sys模块有一些功能很常用,其实在前面我们就看到过一些了。

sys.argv

在刚开始说明python执行脚本参数传递的问题时就已经讲了sys.argv这个变量。这是一个由字符串组成的列表。

import sys

print(sys.argv)
for i in range(len(sys.argv)):
    print(sys.argv[i])

比如新建上面的一个test.py文件,然后执行:

python3 test.py test1 test2
['test.py', 'test1', 'test2']
test.py
test1
test2

我们可以看到sys.argv

$$0$$
就是这个脚本的文件名,然后后面依次是各个参数。

exit函数

这个我们在编写GUI程序的时候经常看到,在其他脚本程序中也很常用。如果不带参数的话那么直接退出程序,还可以带一个字符串参数,返回错误提示信息,或者带一个数字,这里的详细讨论略过。

>>> import sys
>>> sys.exit('出错了')
出错了
wanze@wanze-ubuntu:~$

sys.platform

返回当前脚本执行的操作系统环境。

Linux 返回字符串值:linux;Windows返回win32;Mac OS X 返回darwin。

sys.path

一连串字符串列表,是python脚本模块的搜索路径,所以我们自定义的python模块,只需要在sys.path这个列表上新加一个字符串路径即可。

标准输入输出错误输出文件

sys.stdin,sys.stdout,sys.stderr这三个文件对象对应的就是linux系统所谓的标准输入标准输出和错误输出文件流对象。

sys.version

sys.version输出当前python的版本信息和编译环境的详细信息。

sys.version_info

$$0$$
返回当前python主版本的标识,比如python3就返回数字3。

sys.maxsize

返回当前计算环境下整数(int)类型的最大值,32位系统是$2**31-1$

>>> 2**31-1
2147483647
>>> import sys
>>> sys.maxsize
2147483647

sys.stdin.isatty()

测试输入流是不是终端。如果是终端,则返回True。

更多内容请参见官方文档

获取本模块对象

如下所示,可以获取本模块内的变量。

import sys
current_module = sys.modules[__name__]