微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可选文件参数的空文件对象

如何解决可选文件参数的空文件对象

Python 标准库是否有创建空文件对象的标准工具?我的意思是一个与现有文件无关的文件对象。它也应该表现为一个关闭文件(读取或写入会失败)。

需求原因:我使用的函数将打开的文件作为参数,但在某些参数组合中,文件没有被使用。而不是使用 None 值并使用 typing.Optional[]assert 污染代码(或者甚至额外的 if,因为我认为 Mypy 甚至不理解 assert!):

def function(arguments: argparse.Namespace,file: typing.Optional[typing.TextIO]) -> None:
    if not arguments.do_not_use_file:
        assert file is not None
        do_something(file)

我想使用空文件对象。

如何创建我能够找到的空文件对象的最佳方法是:

import io

NULL_FILE = io.StringIO()
NULL_FILE.close()

对于空文件对象,代码将是:

def function(arguments: argparse.Namespace,file: typing.TextIO) -> None:
    if not arguments.do_not_use_file:
        do_something(file)

是否有更好的方法来创建空文件对象或处理可选文件参数?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。