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