zoukankan      html  css  js  c++  java
  • Python 内置库 sys用法

      sys模块功能众多,这边先学习几个常用的方法
    sys常见函数列表
    ① sys.argv: 实现从程序外部向程序传递参数。其实sys.argv[]就是一个列表,里面的项为用户输入的参数,但是sys.argv[0]表示代码本身所在的文件路径,对应的sys.argv[1]表示外部传入的第一个
    参数,sys.argv[2]表示从外部传入的第二个参数,依次类推。

    ② sys.exit([arg]): 程序中间的退出,arg=0为正常退出。
    ③ sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii
    sys.setdefaultencoding(): 设置系统默认编码,注意执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys)然后再执行 setdefaultencoding('utf8')
    此时将系统默认编码设置为utf8。
    ④ sys.path:获取模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。sys.path.append("自定义模块路径"),可以自己添加某个路径。
    sys.platform:获取当前的系统平台
    ⑤ sys.stdin,sys.stdout,sys.stderr:(std为standard的缩写意思为标准输入、标准输出、错误输出)stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需
    要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们。
      (1)注意:使用stdout 以及stdin时,需要导入from sys import stdout  ,from sys import stdinstdout相当于print,
        有一点区别就是sys.stdout.write('')这个默认是没有换行的 需要自己添加sys.stdout.write(' '+'\n')这个语句就类似于print ‘’输出语句。在python3.5里面默认是print后面加输出换行,试过在输出后面加逗号,
    但是python3.5还是自动换行,也试过在python3.5 内置函数中修改内建函数print的参数值值,但是没效果,直接使用这种标准输出就可以直接将所要显示的东西放到一行,比较简单。sys.stdin.readline()每次读入一行
    sys.stdout.buffer.write 意为往标准输出的缓冲区中写东西.
      (2)sys.stdout.flush()的用法:
        python的stdout是有缓冲区的,例如:
    import sys
    import time
    
    
    for i in range(5):
        print(i, end=' ')
        sys.stdout.flush()
        time.sleep(1)

        程序本意是每隔一秒输出一个数字,但是如果把这句话sys.stdout.flush()注释的话,你就只能等到程序执行完毕,屏幕上会一次性输出0,1,2,3,4。如果你加上sys.stdout.flush(),刷新stdout,这样就能每                隔一秒输出一个数字了。可以用在网络程序中多线程程序,多个线程后台运行,同时要能在屏幕上实时看到输出信息。


      






  • 相关阅读:
    【剑指offer】不使用新变量,交换两个变量的值,C++实现
    【剑指offer】不用加减乘除做加法,C++实现
    【剑指offer】求1+2+…+n,C++实现
    【剑指offer】左旋转字符串,C+实现
    给记事本添加接口,并通过菜单来执行自定义的功能
    修改PE文件的入口函数OEP
    360搜集隐私程序员级分析,供方舟子及大众参考
    Android窃取用户信息新思路
    如何整治那些敢偷用你Wi-Fi的人
    保护WIFI无线网络的安全
  • 原文地址:https://www.cnblogs.com/yc3110/p/10428663.html
Copyright © 2011-2022 走看看