zoukankan      html  css  js  c++  java
  • python标准库(一) :sys模块常用方法详解

    一、sys的用处和场景

    sys是system的缩写,用来获取操作系统和编译器的一些配置,设置及操作

    以下几个方法在工作面试都几乎是必问的,很多人知其然不知所以然

    现在深入浅出的实践并学习下这个工作中必用模块的一些方法

    1、sys.argv():

    sys.argv就是一个从程序外部获取参数的桥梁,这个“外部”很关键, 因为我们从外部取得的参数可以是多个

    sys.argv其实可以看作是一个列表,所以才能用[]下标的方式提取其中的元素。 其第一个元素是程序本身,随后才依次是外部给予的参数

    现在来通过实践来了解该方法

    (1)创建一个.py文件,写入对应脚本

                 

    (2)打开cmd,拖入.py文件,进行外部传参操作

                 

                sys.argv[0]下标为0的第一参数返回的是程序本身路径,后边才是外部给予的参数

    2、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就是你需要的

         概念:1、Python程序的标准输入/输出/出错流 定义在sys模块中

                    2、python启动时自动与Shell环境中的标准输入,输出,出错 关联

       sys.stdin:所有交互式输入,类似input的方法

       

             

          sys.stdin.readline 和input的区别

             

             可以看到sys.stdin.readline()获取全部的标准输入包括换行符,在使用该方法时使用strip方法去掉换行符

             name = sys.stdin.readline().strip(' ')

             牢记知识点:sys.stdin.readline()的优势

             看上去sys.stdin.readline() 还不如input() 好用,它有一个input没有的优势,该方法可以直接限制输出的字节长度,输出的字节长度不会超过给定参数,这是在开发中较为常用的功能之一

              

             sys.stdout:标准输出流

       牢记知识点:sys.stdout:print(obj)其实就是调用sys.stdout.write(obj+’ ’),但sys.stdout涉及到一个重定向的功能

             print把字符打印在屏幕上是通过sys.stdout的默认输出流,sys.stdout默认映射到打开脚本的窗口,我们可以通过修改sys.stdout的映射关系来改变print的输出位置,方法如下:

              

             后续所有的print输入都会写入到 test.txt内,我们同时想要恢复怎么办,方法如下:

             

      sys.stderr:返回错误的信息,python 程序内报错信息都基于该方法如图红色报错

                 

        牢记知识点:该方法与sys.stdout一样都可以重定向映射写入其他文件

        

              

     4、sys.exit():

    废话不多说,来看python 源文档   

       

             源文档暴露3个重要基础知识:

             1、sys.exit()有自己的退出码,参数为空默认为0

             2、参数可以为任何类型,并且仅仅会抛出SystemExit异常

             3、参数非0就抛出异常,该异常通常由try / finally 来清除操作

           (1)在代码内添加sys.exit()代码

                    

           (2)cmd从外部执行该脚步并传参,会发现不再接受第二个参数

  • 相关阅读:
    事务传播机制,搞懂。
    洛谷 P1553 数字反转(升级版) 题解
    洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here 题解
    洛谷 P1055 ISBN号码 题解
    洛谷 P2141 珠心算测验 题解
    洛谷 P1047 校门外的树 题解
    洛谷 P1980 计数问题 题解
    洛谷 P1008 三连击 题解
    HDU 1013 题解
    HDU 1012 题解
  • 原文地址:https://www.cnblogs.com/yumingzhao/p/11677536.html
Copyright © 2011-2022 走看看