擅长:python、mysql、java
<p>您可以使用regex和<code>itertools.groupby</code>:</p>
<pre><code>import itertools
import re
new_data = [[a, list(b)] for a, b in itertools.groupby([i.strip('\n') for i in open('filename.txt')], key=lambda x:bool(re.findall('RPM:\s', x)))]
second_data = [re.sub('^RPM:\s', '', b[0]) if a else [dict([re.split('(?<=\.)\s+', c)[::-1] for c in b])] for a, b in new_data]
final_data = {second_data[i]:second_data[i+1] for i in range(0, len(second_data), 2)}
</code></pre>
<p>输出:</p>
<pre><code>{'python-2.7.9-0011.00.6ES.x86_64': [{'/usr/lib64/python2.7/base64.pyc': '..5......', '/usr/lib64/python2.7/base64.pyo': '..5......'}], 'psmisc-22.6-24.el6.x86_64': [{'/sbin/fuser': 'S.5......'}]}
</code></pre>