相当于java的OutputStream的python?
是否有与Java的OutputStream或PrintWriter相当的Python等价物?
我希望能够有一个表示stdout / sterr,或文件或其他东西(管道或套接字或虚拟水槽)的流,并抽象出它是什么类型的东西,所以我可以只是发送输出到它。
我怎样才能做到这一点?
“抽象出它是什么类型”在Python中自动发生 - 它被称为“鸭子打字”。 只需将任何类似文件的对象传递给函数,并使用类似文件的对象的接口。
FWIW,标准输入/输出/错误流由sys
模块中的stdin
, stdout
和stderr
表示。 要获取读取和写入字符串的文件类对象,请使用StringIO
模块。
看看io和StringIO模块。
你只需要一个实现文件,管道,流等等方法的对象。 例如,我有时使用这个类,当我想分离我的Python程序,我想重定向sys.stderr / sys.stdout:
class Log(object):
"""used for logging for background process"""
def __init__(self, f):
self.f = f
def write(self, s):
self.f.write(s)
self.f.flush()
sys.stdout = sys.stderr = Log(open('/tmp/daemonlog', 'a+'))
链接地址: http://www.djcxy.com/p/48657.html
上一篇: python equivalent of java OutputStream?
下一篇: Good practices for uploading images through a restful API