Python 解决 AttributeError AttributeError: 'NoneType' object has no attribute 'write' 错误
使用docx2pdf 模块进行word转pdf的时候,用python.exe 带控制台可以运行,pythonw.exe 无控制台的时候报错 AttributeError AttributeError: 'NoneType' object has no attribute 'write'
原因:代码中存在向控制台写信息,pythonw.exe没有控制台,导致无法调用write方法。
解决方法
import os
import sys
# 重定向标准输出和标准错误
sys.stdout = open(os.devnull, 'w')
sys.stderr = open(os.devnull, 'w')
# 这里写需要屏蔽打印信息的代码
print("这个信息不会被打印出来")
# 恢复标准输出和标准错误
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
print("这个信息会被打印出来")
来自ChatGPT
以上代码将标准输出和标准错误流重定向到
os.devnull
,这相当于将所有打印信息丢弃。重定向的代码运行完成后,再恢复标准输出和标准错误流,这样后续的打印信息可以正常显示。请注意,在重定向期间,所有的打印信息,包括异常信息都会被丢弃。如果需要在调试时查看这些信息,记得在适当时候恢复标准输出和标准错误流。
文章目录