Python常用标准库之sys

Python015

Python常用标准库之sys,第1张

sys模块主要是针对与Python解释器相关的变量和方法,不是主机操作系统。

导入方式: import sys

sys.argv是一个脚本执行参数列表,列表的第一个元素是脚本名称,从第二个元素开始才是真正的参数。

path是一个目录列表,供Python从中查找模块。在Python启动时,sys.path根据内建规则和PYTHONPATH变量进行初始化。sys.path的第一个元素通常是个空字符串,表示当前目录。

sys.path本质上是一个列表,可以进行append、insert、pop、remove等各种列表相关的操作,但通常都进行append操作,添加自己想要的查找路径。

stdin 用于所有的交互式输入(包括input()函数)。

stdout 用于print()的打印输出或者input()函数的提示符。

stderr 用于解释器自己的提示信息和错误信息。

简而言之,这三个属性就是操作系统的标准输入、输出和错误流,它们返回的都是一个“文件类型”对象,支持read()、write()和flush()等操作,就像用open()方法打开的文件对象那样!

当我们用 input('Please input something!') 时,事实上是先输出提示信息,然后捕获输入。 以下两组等价:

当我们 print(obj) 的时候,事实上是调用了 sys.stdout.write(obj+'\n') ,将内容打印到控制台(默认是显示器),然后追加一个换行符。以下两行等价:

默认情况下 sys.stdout 指向控制台。如果把文件对象赋值给 sys.stdout ,那么 print () 调用的就是文件对象的 write() 方法。

如果你还想同时在控制台打印的话,最好先将原始的控制台对象引用保存下来,向文件中打印之后再恢复 sys.stdout .

参考:

python标准库和扩展库中的对象必须先导入才能使用,导入方如如下:

1、import 模块名 [as 别名]

使用这种方式将模块导入后,使用时须以‘模块名.对象名’的形式进行访问。

使用方法:

>>>import math

>>>math.gcd(56,64)       #计算最大公约数

8

2、from 模块名 import 对象名 [as 别名]

使用这种方式仅导入明确指定的对象,且 此方式可减少查询次数,提高访问速度

使用方法:

>>>from random import sample

>>>sample(range(100),10)         #指定范围内选择不重复元素

[33, 77, 12, 36, 56, 66, 27, 76, 52, 16]

3、from 模块名 import *

使用此方式可以一次导入模块中的所有对象,直接使用模块中的所有对象而不需要再使用模块名作为前缀,但一般不推荐使用。

使用方法:

>>>from math import *

>>>sqrt(9)      #求平方根

3