在给代码 D e b u g Debug Debug 时觉得看一长串异常信息太累了,特别是依赖关系很多时会看到崩溃,偶然看了下 t r a c e b a c k traceback traceback 的源码,发现可以筛选出特定文件内的异常
Last updated: \space 2023/08/19
from traceback import TracebackException
import pandas as pd
import sys
def logic():
df_1 = pd.DataFrame(data={'column_1': [2, 3, 4, 5], 'column_2': ['a', 'b', 'c', 'd']})
df_2 = pd.DataFrame(data={'column_1': [3, 4, 5, 6], 'column_2': ['a', 'b', 'c', 'd']})
df_1.join(df_2.set_index('column_1'), on='column_1')
def run():
logic()
if __name__ == '__main__':
try:
run()
except Exception as e:
log_summary = '\n'
e_type, value, tb = sys.exc_info()
for line in TracebackException(e_type, e, tb).format(chain=True):
if 'src' in line:
log_summary += line
log_summary += f'\n{e_type}: {e}'
print(log_summary)