s0rg
Я под шаманил под себя ваш код, получилось следующее
f = open(r'c:\stat11.txt')
data = []
cpu_stat = dict()
for line in f:
line = "%s \n" %(line.strip (' \n'))
data.append(line)
f.close()
for ln in data:
words = ln.split(' ')
cpu = words[3].strip(',')
freq = words[6]
cpu_dict = cpu_stat.setdefault(cpu, {})
cpu_dict[freq] = cpu_dict.get(freq, 0) + 1
n=[]
z = []
for k,v in cpu_stat.iteritems():
z=[] #тут решил сделать так, как пока умею...
pk = 'CPU Num: %s \n' % k
n.append(pk)
for k1,v1 in v.iteritems():
pv = 'Freq: %s count: %d \n' % (k1, v1)
z.append(pv)
z.sort()
n.extend(z)
fout = open(r'c:\stat22.txt', 'a')
for ms in n:
fout.write(ms)
fout.close()
Вопрос почему когда список выглядит так :
Количество CPU = 1, frequency = 1.0 GHz
Количество CPU = 1, frequency = 2.7 GHz
Количество CPU = 1, frequency = 2.8 GHz
Количество CPU = 2, frequency = 2.0 GHz
Количество CPU = 2, frequency = 2.2 GHz
Количество CPU = 2, frequency = 2.6 GHz
Количество CPU = 2, frequency = 2.6 GHz
Количество CPU = 2, frequency = 3.1 GHz
Количество CPU = 2, frequency = 3.1 GHz
Количество CPU = 2, frequency = 3.1 GHz
Количество CPU = 2, frequency = 3.2 GHz
Количество CPU = 2, frequency = 3.2 GHz
Количество CPU = 2, frequency = 3.3 GHz
Количество CPU = 2, frequency = 3.5 GHz
Количество CPU = 3, frequency = 3.0 GHz
Количество CPU = 3, frequency = 3.0 GHz
Количество CPU = 3, frequency = 3.0 GHz
Количество CPU = 3, frequency = 3.0 GHz
Количество CPU = 3, frequency = 3.0 GHz
—-
добавилась строка с CPU = 3, он при обработке и выводе данных путает местами блоки CPU =2 с CPU =3, причем подсчеты выводит то верно к нужному значению нужные числа. Причем такая путанца происходит только с этими блоками. Проверял на других списках, и других значениях.
Выглядит ето так :
CPU Num: 1
Freq: 1.0 count: 1
Freq: 2.7 count: 1
Freq: 2.8 count: 1
CPU Num: 3
Freq: 3.0 count: 5
CPU Num: 2
Freq: 2.0 count: 1
Freq: 2.2 count: 1
Freq: 2.6 count: 2
Freq: 3.1 count: 3
Freq: 3.2 count: 2
Freq: 3.3 count: 1
Freq: 3.5 count: 1
——
Приму консультации и советы, с большим удовольствием и благодарностью!