繁体   English   中英

使用file参数抑制python3中的打印输出

[英]Suppressing print output in python3 with file parameter

我有几个函数,我想设置详细级别。 目前,我正在处理它:

class Foo:
    def __init__(self, foo_stuff, verbose=True):
        self.print_file = None if verbose else open(os.devnull, 'w')

    def do_stuff(self):
        print('doing stuff', file=self.print_file)

这有效,但我不喜欢我从不关闭文件self.print_file.

为了清洁,我宁愿不用with open(...)包装每一个打印功能。 我想知道是否有人可以提出另一种方法。 对于这个应用程序,我不认为python日志记录模块将工作。

atexit模块可能有所帮助。 在你的Foo类中编写一个清理函数并通过调用来注册它

atexit.register(function, args)

在程序退出之前调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM