首页 > 解决方案 > 使用文件参数抑制python3中的打印输出

问题描述

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

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 日志记录模块不会起作用。

标签: python

解决方案


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

atexit.register(function, args)

在程序退出之前调用。


推荐阅读