我有一个上下文管理器来处理大量的逻辑
with open(file_name1, 'rb') as file1:
with open(file_name2, 'a+b') as file2:
logic_here
不幸的是,在某些情况下file_name2
可能是None
。但是,我仍然希望执行logic_here
。是否有一种优雅的方式来处理此问题而无需删除上下文管理器?看来我可能需要使用try / catch
并在文件上手动调用.close()
。
从理论上讲,我不介意仅打开任何文件,我也不关心发生的写入的内容。我确实希望避免创建太多要写入的临时文件,并且也希望避免意外写入可能已经在磁盘上的个人文件。
python大神给出的解决方案
快速,可靠的解决方案,因为这似乎是您要寻找的东西:
if file_name2 is None:
file_name2 = os.devnull
参见:https://docs.python.org/2/library/os.html#os.devnull