Python 内置库 sys用法

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

Python 内置库 sys用法

Python 内置库 sys用法

Python 内置库 sys用法

② 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,这样就能每                隔一秒输出一个数字了。可以用在网络程序中多线程程序,多个线程后台运行,同时要能在屏幕上实时看到输出信息。

  

上一篇:[转]network-manager与interfaces冲突


下一篇:使用ABP框架踩过的坑系列3