我目前有一个非常无序的文件
file.txt
vfc1 3435 4556
vfc1 2334 2123
vfc1 5556 1234
vfc2 8997 5969
vfc2 4543 3343
vfc2 1232 2123
我想做的是订购此文件,以便文件中的所有行都显示在一行上,如下所示:
file_output.txt
vfc1 1234 2123 2334 3435 4556 5556
vfc2 1232 2123 3343 4543 5969 8997
最佳答案
这个怎么样?
from collections import defaultdict
d = defaultdict(list)
with open('input.txt') as f:
for line in f.readlines():
data = line.split()
d[data[0]].extend(data[1:])
with open('output.txt', 'w') as f:
for key, value in d.iteritems():
f.write(
'%(key)s %(value)s\n'
% {'key': key, 'value': " ".join(sorted(value))}
)