sys模块用于Python解释器及其环境操作
● sys模块的常用变量及函数
传递给程序的命令行选项列表,argv[0]是程序名 |
将模块名映射到实际存在的模块上的字典,其中只有目前已导入的模塊 |
查找模块所在目录的目录名列表。 |
标识操作系统平台的字符串如:'Linux', 'win32'等。 |
元组表示的Python版本 |
平台无关的Python所在目录。 |
平台相关的Python所在的目录 |
通过引发SystemExit异常来退出Python。n是一个表示状态码的整数0表示正常,非零表示异常 |
返回用于将Unicode文件名映射到底层操作系统使用的文件名嘚编码方式。 |
返回一个元组说明当前Windows版本。 |
返回检查间隔值它设置解释器多久检查信号、线程开关和其他定期事件。 |
● sys模块的其他变量
Python解释器的C语言版本API的整数 |
内置于Python可执行文件中模块的元组。 |
本机的字节排序方式:'little'(小端) 或 'big'(大端) |
导入模块时决定Python是否写字节碼的布尔标志。 |
Python解释器可执行文件名的字符串如:'Python3' |
提供给Python解释器的不同命令行选项设置的对象,详可查见Python手册 |
有关浮点数内部表示信息的对象,详可查见Python手册 |
将path中的用户主目录'~'替换成当前用户主目录的绝对路径名称。 |
winreg模块提供了Windows注册表的底层接口详细使用可查阅Python手冊。
subprocess模块包含的函数和对象用于泛化创建新进程的任务、控制输入与输出流
以子进程形式执行一个新命令,然后返回代表新进程的Popen对象详情可查看Python手册。 |
与Popen()完全相同但它只返回状态码,不返回Popen对象 |
通过将input中提供的数据发送给进程的标准输入,与子进程进行通信数據一旦法宠,就会等待进程终止返回值是一个元组 (stdout, stderr)。 |
检查p是否已经终止是则返回子进程的返回代码,否则返回None |
发送一个信号给子进程,signal是singal模块中定义的信号编号在Windows上,唯一支持的信号是SIGTERM |
等待p终止,然后返回返回代码 |
进程的数字返回代码,如果为None则表示进程尚未终止,如果为负值表示进程已被一个信号终止。 |
当以管道形式打开相应的I/O流时这三个属性将被设置为打开的文件对象。 |
例:创建2个孓进程然后通过一条管道将它们链接在一起
信号通常应对异步事件,包括:定时器到期、有输入数据达到、用户执行操作等signal模块的信號接口基本仿UNIX,在Windows下只支持其中的一小部分
进入睡眠状态,直到收到下一个信号为止 |
将信号singalnum的信号处理器函数设置为handler。handler必须为接收2个參数(信号编号和帧对象)的Python可调用对象将handler指定为SIG_IGN或SIG_DFL分别代表忽略信号和使用默认信号处理器。返回值时以前设置的信号处理器启用線程时,只能用主线程调用此函数否则将引发ValueError异常。signalnum可用信号见下表 |
返回signalnum的信号处理器,返回对象是Python的可调用对象若为忽略信号则返回SIG_IGN,若为默认处理器则返回SIG_DFL如果没有设置处理器函数,则返回None |
如果time非0,就会在time秒内将SIGALARM信号发送给程序;如果time为0则不安排任何警报消息。不管time是否为0以前安排的任何警报都会取消,返回值为以前安排的所有警报之前所余的秒数如没有则返回0。 |
将内部定时器设在seconds秒の后生成一个信号并在此之后每interval秒重复法宠信号,这两个参数均为浮点数which决定生成什么信号,可选值为:ITIMER_REAL(生成SIGALRM信号)、ITIMER_VERTUAL(生成SIGVTALRM信号)、ITIMER_PROF(生成SIGPROF信号)将seconds设为0将清除定时器。本函数返回值为元组表示的以前设置的定时器:(seconds, |
返回由which表示的内部定时器的当前值 |
为给定信號设置系统调用的重启行为,若flags为False则被signalnum中断的系统调用将自动重新启动;若flags为Ture,将中断系统调用被中断的系统调用通常会引发OSError或IOError异常。 |
当接收到信号时会向文件描述符fd的文件中写入一个'\0'字节。通常给select模块中的轮询函数使用必须以非阻塞模式打开fd文件,此函数才有效 |
使用SIG*格式的符号可以描述各种信号,浙西名称对应于特定的整数值常用信号如下表所示:
以下示例如何在异步操作时使用singal模块发信号: