gpt4 book ai didi

Python - Traceback,如何显示导入的文件名

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:29 25 4
gpt4 key购买 nike

我有以下内容:

try:
package_info = __import__('app') #app.py
except:
print traceback.extract_tb(sys.exc_info()[-1])
print traceback.tb_lineno(sys.exc_info()[-1])

我从中得到的是:

[('test.py', 18, '<module>', 'package_info = __import__(\'app\')')]
18

现在这几乎就是我想要的,这是实际错误开始的地方,但我需要继续执行并获得实际感染,即 app.py 包含 ä 例如在第 17 行而不是第 18 行。

如果未经处理,这是我的实际错误消息:

Non-ASCII character '\xc3' in file C:\app.py on line 17, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details", ('C:\app.py', 17, 0, None)), )

我找到了一些例子,但它们都显示了影响点而不是问题的实际原因,如何解决这个问题(pref Python2 和 Python3 交叉支持,但 Python2 在这种情况下更重要)到以与上述元组类似的方式获取文件名、行和问题原因?

最佳答案

捕获具体的异常,看看它有什么信息。该消息是根据异常对象的参数格式化的,所以它在那里是一个很好的选择。在这种情况下,SyntaxError 包含一个文件名属性。

try:
package_info = __import__('app') #app.py
except SyntaxError, e:
print traceback.extract_tb(sys.exc_info()[-1])
print traceback.tb_lineno(sys.exc_info()[-1])
print e.filename

关于Python - Traceback,如何显示导入的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18385000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com