导航

Python学习笔记(二):标准流与重定向

Posted on 2012-02-19 22:36  SamWei  阅读(1844)  评论(0编辑  收藏  举报

      Python的sys模块重包含标准输入、输出和错误流:sys.stdin, sys.stdout, sys.stderr.

      流的重定向包括重定向到文件,程序,和Python对象。

  1. 重定向到文件:< filename 将标准输入流重定向到一个文件;> filename 将标准输出流重定向到一个文件。
  2. 重定向到程序:利用pipe操作将一个程序的标准输出发送到另一个程序的标准输入,使用的操作符是 |
  3. 重定向到Python对象:在Python中任何提供file-like read方法的对象都可以赋给sys.stdin从而使得输入来自该对象的read方法。任何提供file-like write方法的对象都可以被赋给sys.stdout方法从而使得标准输出输送到该对象的write方法。这种plug-and-play的兼容性被称为多态。用户可以自己定义“输入或输出”对象,只要在该对象中实现相应的read/write方法即可。与此同时Python标准库提供了io.StringIO与io.BytesIO类来达到相同的目的。同时print函数提供了一个参数可以将标准输出定向到一个对象print(stuff, file=afile)
  4. 其他重定向的方法还有利用os.popen和subprocess进行重定向。