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()括号内可以直接填写说明文字。