Python NameError异常定义及异常变量e未定义报错解决咨询
NameError异常定义
NameError是Python的内置标准异常,当代码尝试引用未提前声明/定义的变量、函数、类等标识符时,解释器就会抛出该异常。你本次遇到的报错就是因为异常捕获逻辑中没有定义变量e,却直接在字符串格式化时调用了e。
代码修复方案
你当前的异常捕获语句仅写了except:,没有将捕获到的异常实例绑定到变量,需要调整为except Exception as e:的格式即可完成变量e的定义。
另外需要注意:Python3中已经废弃了内置的file()函数,读写文件请使用open()函数,否则修复完异常变量的问题后依然会报错。
完整修正后的代码如下:
def fixPdf(pdfFile): try: # 替换已废弃的file()为open() fileOpen = open(pdfFile, "a") fileOpen.write("%%EOF") fileOpen.close() return "Fixed" # 将捕获到的异常实例绑定到变量e except Exception as e: return "Unable to open file: %s with error: %s" % (pdfFile, str(e)) if __name__ == '__main__': fixPdf('Sample.pdf')
补充说明:
- 你也可以根据需求精准指定捕获的异常类型,比如
except IOError as e:只捕获文件操作相关的异常,避免捕获无关异常导致问题被掩盖。 - 日常写代码时更推荐用上下文管理器
with来操作文件,不需要手动调用close()方法,文件操作结束后会自动关闭,避免资源泄露。
内容的提问来源于stack exchange,提问作者YasserKhalil
相关产品推荐
相关产品推荐

