Используйте traceback.extract_stack()
, если вам нужен удобный доступ к именам модулей и функций и номерам строк.
Используйте ''.join(traceback.format_stack())
, если вам нужна строка, похожая на вывод traceback.print_stack()
.
Обратите внимание, что даже с ''.join()
вы получите многострочную строку, поскольку элементы format_stack()
содержат \n
.См. Вывод ниже.
Не забудьте import traceback
.
Вот вывод из traceback.extract_stack()
.Для удобства чтения добавлено форматирование.
>>> traceback.extract_stack()
[
('<string>', 1, '<module>', None),
('C:\\Python\\lib\\idlelib\\run.py', 126, 'main', 'ret = method(*args, **kwargs)'),
('C:\\Python\\lib\\idlelib\\run.py', 353, 'runcode', 'exec(code, self.locals)'),
('<pyshell#1>', 1, '<module>', None)
]
Вот вывод из ''.join(traceback.format_stack())
.Для удобства чтения добавлено форматирование.
>>> ''.join(traceback.format_stack())
' File "<string>", line 1, in <module>\n
File "C:\\Python\\lib\\idlelib\\run.py", line 126, in main\n
ret = method(*args, **kwargs)\n
File "C:\\Python\\lib\\idlelib\\run.py", line 353, in runcode\n
exec(code, self.locals)\n File "<pyshell#2>", line 1, in <module>\n'