gpt4 book ai didi

python - 如何打印回溯堆栈中的第一行

转载 作者:行者123 更新时间:2023-11-30 23:10:22 25 4
gpt4 key购买 nike

假设我得到以下回溯:

Traceback (most recent call last):    
File "<wingdb_compile>", line 3, in <module>
File "C:\Python34\lib\ftplib.py", line 419, in login
resp = self.sendcmd('PASS ' + passwd)
File "C:\Python34\lib\ftplib.py", line 272, in sendcmd
return self.getresp()
File "C:\Python34\lib\ftplib.py", line 245, in getresp
raise error_perm(resp)
ftplib.error_perm: 530 Login incorrect.

我已经设法提取错误详细信息,但困扰我的是如何提取该行:

File "<wingdb_compile>", line 3, in <module>

我正在查看回溯包中的方法,但想知道是否有人有这方面的经验

最佳答案

函数traceback.format_exc主要是为此而构建的

This is like print_exc(limit) but returns a string instead of printing to a file.

>>> import traceback
>>> try:
... x = 2/0
... except:
... error = traceback.format_exc()
...
>>> error
'Traceback (most recent call last):\n File "<stdin>", line 2, in <module>\nZeroDivisionError: division by zero\n'
>>> linesoferror = error.split('\n')
>>> linesoferror
['Traceback (most recent call last):', ' File "<stdin>", line 2, in <module>', 'ZeroDivisionError: division by zero', '']

所以现在你想要第一行,那么你可以简单地使用

>>> linesoferror[1]
' File "<stdin>", line 2, in <module>'

瞧!你有你想要的

ALERT - Valid for Python 2.4.1 and above

关于python - 如何打印回溯堆栈中的第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30716450/

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