我有以下代码片段。
def do_scheme():
print """
<scheme>
<title>ABC</title>
<description>ABC is Company</description>
"""
if __name__ == "__main__":
do_scheme()
当我使用任何其他命令执行此 CLI 时,例如:“python test.py | echo $PATH”或“python test.py | cd..”,它显示以下错误消息:
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr
我尝试处理 sys.excepthook 但没有成功。我们可以在这里使用任何装饰器来避免此类错误消息吗?
您的打印语句出错,因为您将输出通过管道传输到不接受任何输入的
cd
。
尝试使用 sys.stdout.write
来代替并捕获任何 IO 错误。
但实际上,问题是你不应该通过管道传输到 cd
...