<p>似乎可以依赖跟踪格式中的缩进。这是一个基本版本:</p>
<pre><code>td_filename = 'trace.txt'
exc_dict = {}
with open(td_filename) as f:
cur_line = None
for line in f:
if line.startswith(' ') or line.startswith('\n'):
if cur_line is not None:
exc_dict[cur_line].append(line)
else:
if line not in exc_dict:
exc_dict[line] = []
cur_line = line
for k in exc_dict:
print(k)
print(exc_dict[k])
print('\n')
</code></pre>
<p>如果要分离单个异常并连接字符串,请尝试以下操作:</p>
<pre><code>td_filename = 'trace.txt'
exc_dict = {}
with open(td_filename) as f:
cur_line = None
for line in f:
if line.startswith(' ') or line.startswith('\n'):
if cur_line is not None:
if exc_dict[cur_line][-1] is None:
exc_dict[cur_line][-1] = ''
exc_dict[cur_line][-1] += line
else:
if line not in exc_dict:
exc_dict[line] = []
exc_dict[line].append(None)
cur_line = line
for k in exc_dict:
print(k)
for e in exc_dict[k]:
print(e)
print('\n')
</code></pre>