系统模块
python中绝大多数系统级的接口都封装在sys和os两个模块中。这么说有些过于简单了;还有一些标准模块也属于系统级别的,比如:
glob
用于文件名扩展
socket
用于网络连接和内部进程通信(IPC)
threading, _thread, queue
用于执行和同步并发线程
time, timeit
用于访问系统时间
subprocess, multiprocessing
用于登录和控制并发进程
signal, select, shutil, tempfile等
用于其他各种系统相关的任务
一些三方扩展,比如pySerial(提供串口接口),Pexpect(用于控制不同编程语言间的对话)以及Twisted(一种网络框架)也可以归类于系统级别。另外,一些内建函数实际上也是系统级接口——比如open函数,用于处理文件系统的接口。但总的来说,模块sys和os构成了python内建系统的核心。
从原则上说,至少sys模块中的内容和python解析器自身有关(比如路劲搜索模块),os中的一些变量和函数,是对python运行的操作系统的映射。实际上,这种区别并不是那么清晰的(比如,标准输入和输出流属于sys模块,但同时他们又与操作系统范式相关联)。这些模块中的工具非常常用,所以会常驻内存。
os模块也提供了一些可移植的编程接口;在不同的平台上这些接口的执行方式不尽相同,但是它们的python脚本是一样的。os模块还提供了一个嵌套的子模块,os.path,为文件和文件路径管理提供了可移植接口。
模块sys和os
sys模块主要和python的解析器相关; os模块主要和运行的环境(操作系统)相关; 标准输入输出流属于模块sys,但是和操作系统相关。sys.path
python解析器的真实目录名列表(这些目录用来搜索模块对应的python脚本,搜索顺序是从左到右)。用户可以做修改,只是这种改动只能维持到进程结束。
sys.modules
在一次python会话或者进程(打开IDLE或者在MS-DOS中运行py脚本 )中导入的所有模块信息的字典。数据项由name:module构成。
sys.getrefcount(object)
获取对象的引用次数
sys.exc_info()
针对最近产生的异常,返回其类型,值(异常消息)以及记录发生轨迹(traceback object)(三元组)
sys.argv
获取命令行参数
sys.stdin,sys.stdout,sys.stderr
标准输入流,标准输出流和标准错误信息流
sys.stdin.isatty()
判断当前窗口是否控制台