文件内容:
文件.txt
RPM: psmisc-22.6-24.el6.x86_64
S.5...... /sbin/fuser
RPM: python-2.7.9-0011.00.6ES.x86_64
..5...... /usr/lib64/python2.7/base64.pyc
..5...... /usr/lib64/python2.7/base64.pyo
我想创建以下数据结构-下面的示例是手动装箱的,以说明预期的输出。你知道吗
文件列表({file:verify status}对)作为pkg名称为的每个键的值:
>>> d
{'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......'}]}
>>> for k, v in d.items():
... print(k, v)
...
('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......'}])
到目前为止,我能够将pkg名称添加到字典中,但不确定如何继续:
#!/usr/bin/env python
import os
d = {}
with open('files.txt', 'r') as f:
for line in f:
(k, v) = line.split()
if k.startswith('RPM'):
d[v] = []
print(d)
测试:
$ python test.py
{'python-2.7.9-0011.00.6ES.x86_64': [], 'psmisc-22.6-24.el6.x86_64': []}
我也不确定这个数据结构是否是最优的,所以欢迎任何建议。你知道吗
您可以使用regex和
itertools.groupby
:输出:
输出:
相关问题 更多 >
编程相关推荐