Python的sys模块重包含标准输入、输出和错误流:sys.stdin, sys.stdout, sys.stderr.
流的重定向包括重定向到文件,程序,和Python对象。
- 重定向到文件:< filename 将标准输入流重定向到一个文件;> filename 将标准输出流重定向到一个文件。
- 重定向到程序:利用pipe操作将一个程序的标准输出发送到另一个程序的标准输入,使用的操作符是 |
- 重定向到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)
- 其他重定向的方法还有利用os.popen和subprocess进行重定向。