SYS模块Python标准库中自带了一个模块。

sys模块包括了一组非常实用的服务,内含很多函数方法和变量,用来处理Python运行时配置以及资源,从而可以与前当程序之外的系统环境交互。

以下是一些常用的sys功能

1、sys.argv :脚本参数List,列表索引为0的元素是程序本身路径,后面列表元素对应脚本参数顺序

#!/usr/bin/env python3

import sys

a = sys.argv

print("脚本参数列表",a)
print("索引为0的元素",a[0])
print("索引为1的元素",a[1])
print("索引为2的元素",a[2])
执行结果:
[root@localhost tmp]# ./pytest17.py arg1 agr2
脚本参数列表 ['./pytest17.py', 'arg1', 'agr2']
索引为0的元素 ./pytest17.py
索引为1的元素 arg1
索引为2的元素 agr2

2、sys.exit(n) :退出程序返回值;退出程序程序功能与exit()相同,不同的是sys.exit()需要引入sys模块,exit()可以直接使用

#!/usr/bin/env python3

import os,sys

while True:
    choice = input('是否退出程序:')
    if choice == "yes":
        sys.exit("退出程序!!!")
    else:
        print("继续执行!")
执行结果:
是否退出程序:no
继续执行!
是否退出程序:yes
退出程序!!!

3、sys.version:获取Python解释程序的版本信息

>>> print(sys.version)
3.6.1 (default, Jun 26 2017, 10:18:59) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

4、sys.path :返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

>>> print(sys.path)
['', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages/pip-9.0.1-py3.6.egg']

5、sys.platform :返回操作系统平台名称

#linux平台
>>> print(sys.platform)
linux

#windows平台
>>> print(sys.platform)
win32

6、sys.stdout.write()

功能:向显示器打印输出内容,循环打印不会换行

使用方法:sys.stdout.write("要输出的内容");参数\r清空当前打印输出

#!/usr/bin/env python3
# -*- coding:utf8 -*-
import  time
import sys
a = 30
for i in range(a+1):    #循环a加1次
    sys.stdout.write("\r")  #每次循环前清空向屏幕打印输出的数据
    sys.stdout.write("<")
    sys.stdout.write("%s%% %s" % (int(i/a*100), int(i/a*30)*"--"))   #向屏幕打印输出拼接的字符串百分之几和进度字符
    sys.stdout.write(">")
    sys.stdout.flush()  #刷新缓冲区,让每次循环都打印
    time.sleep(0.1) #每循环一次停留1秒

sys.stdout.write("\n")  #循环执行结束后换行
执行结果:
root@localhost tmp]# ./pytest16.py 
<100% ------------------------------------------------------------>
[root@localhost tmp]#

7、sys.stdin.readline( ):将标准输入全部获取,包括末尾的'\n';

 常用格式:sys.stdin.readline()[:-1] 去掉末尾换行符"\n"

#!/usr/bin/env python3

import sys


val = sys.stdin.readline()
print(val)
print("标注输出去换行符")
vals = sys.stdin.readline()[:-1]  #去掉标准输入后的换行符
print(vals)
执行结果:
[root@localhost tmp]# ./pytest19.py
chengd    #标准输入内容
chengd

标注输出去换行符
chengd    #标准输入内容
chengd

注:input()方法和stdin()类似,不同的是input()括号内可以直接填写说明文字。