java OutputStream的python等价物?

2024-05-20 19:34:54 发布

您现在位置:Python中文网/ 问答频道 /正文

是否有一个Python等价/伪等价于java的OutputStreamPrintWriter?在

我希望能够有一个句柄,它可以表示stdout/sterr之类的流,或者一个文件,或者其他东西(管道、套接字或虚拟接收器)并抽象出它是什么类型的东西,这样我就可以向它发送输出。在

我该怎么做?在


Tags: 文件类型管道stdoutjava句柄等价接收器
3条回答

你只需要一个实现文件、管道、流等方法的对象。。。同时实施。例如,当我想分离python程序并想重定向时,我有时会使用这个类系统标准/系统.标准输出:

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+'))

看看io和{a2}模块。在

“抽象出它是什么类型”在Python中自动发生,这被称为“duck类型”。只需将任何类似文件的对象传递给函数,并让它使用类似文件对象的接口。在

sys模块中,标准输入/输出/错误流由stdinstdout和{}表示。要获得读写字符串的类似文件的对象,请使用StringIO模块。在

相关问题 更多 >