1、sys的用处和场景python
sys是system的缩写,用来获取操做系统和编译器的一些配置,设置及操做面试
如下几个方法在工做面试都几乎是必问的,不少人知其然不知因此然app
如今深刻浅出的实践并学习下这个工做中必用模块的一些方法ide
一、sys.argv():学习
sys.argv就是一个从程序外部获取参数的桥梁,这个“外部”很关键, 由于咱们从外部取得的参数能够是多个编码
sys.argv其实能够看做是一个列表,因此才能用[]下标的方式提取其中的元素。 其第一个元素是程序自己,随后才依次是外部给予的参数spa
如今来经过实践来了解该方法操作系统
(1)建立一个.py文件,写入对应脚本blog
(2)打开cmd,拖入.py文件,进行外部传参操做ip
sys.argv[0]下标为0的第一参数返回的是程序自己路径,后边才是外部给予的参数
二、sys.path工做中必用的方法
简介:sys.path是对 Python 解释器的系统环境参数的操做,动态的改变 Python 解释器搜索路径(划重点)
sys.path会返回一个路径列表,sys.path[0]表示的是当前脚本运行目录
牢记知识点:python的两种加载py文件方式,sys.path[0]产生的值会有差别,注意返回列表的第一个值,在工做中注意脚本运行环境,这是个坑
方式一:直接运行代码
方式二:做为模块脚原本运行
牢记知识点:在工做中,咱们导入模块程序会在当前目录下去搜寻咱们想要的模块,但咱们时常要import导入引用第三方模块,sys.path能够自定义模块路径直接调用外部py文件,以便调用
假设一个第三方demo.py文件临时存放在E盘,它的功能就是打印输出 helloworld
sys.path.append("文件路径") 直接指向搜寻路径
直接导入 xxx.py 便可
3 、sys.stdin、sys.stdout、sys.stderr
概念:这三个方法都是文件属性,对应的方法能够读、写、建立文件及编码操做
若是须要更好的控制输出,而print不能知足需求,sys.stdout,sys.stdin,sys.stderr就是你须要的
概念:一、Python程序的标准输入/输出/出错流 定义在sys模块中
二、python启动时自动与Shell环境中的标准输入,输出,出错 关联
sys.stdin:全部交互式输入,相似input的方法
sys.stdin.readline 和input的区别
能够看到sys.stdin.readline()获取所有的标准输入包括换行符,在使用该方法时使用strip方法去掉换行符
name = sys.stdin.readline().strip('\n')
牢记知识点:sys.stdin.readline()的优点
看上去sys.stdin.readline() 还不如input() 好用,它有一个input没有的优点,该方法能够直接限制输出的字节长度,输出的字节长度不会超过给定参数,这是在开发中较为经常使用的功能之一。无锡作人流多少钱 http://www.ytsg029.com/
sys.stdout:标准输出流
牢记知识点:sys.stdout:print(obj)其实就是调用sys.stdout.write(obj+’\n’),但sys.stdout涉及到一个重定向的功能
print把字符打印在屏幕上是经过sys.stdout的默认输出流,sys.stdout默认映射到打开脚本的窗口,咱们能够经过修改sys.stdout的映射关系来改变print的输出位置,方法以下:
后续全部的print输入都会写入到 test.txt内,咱们同时想要恢复怎么办,方法以下:
sys.stderr:返回错误的信息,python 程序内报错信息都基于该方法如图红色报错
牢记知识点:该方法与sys.stdout同样均可以重定向映射写入其余文件
四、sys.exit():
废话很少说,来看python 源文档
源文档暴露3个重要基础知识:
一、sys.exit()有本身的退出码,参数为空默认为0
二、参数能够为任何类型,而且仅仅会抛出SystemExit异常
三、参数非0就抛出异常,该异常一般由try / finally 来清除操做
(1)在代码内添加sys.exit()代码
(2)cmd从外部执行该脚步并传参,会发现再也不接受第二个参数