Форум сайта python.su
0
Всем доброго времени суток. Вот скажем у меня есть .txt документ в котором хранятся примерно такие данные:
10:09:55.192 ComponentA 0 INFO description
10:09:55.193 ComponentA 0 INFO description
10:09:55.193 ComponentA 0 INFO description
10:09:55.193 ComponentA 0 INFO description
10:09:55.193 ComponentB 0 INFO description
- это маленький отрезок этих данных, на самом деле их может быть на пару гигов.
Так вот мне нужно вывисти данные примерно в таком виде:
ComponentA - 888 (общее количество компонентов А из всего txt файла)
ComponentA + ComponentB + ComponentC + ComponentD - 999 (Общее количество компонентов А,Б,С и тд.)
Тоесть мне нужно подсчитать количество ComponentN из .txt файла и их сумарное количество.
Заранее благодарен
.
Офлайн
4
Примерное решение:
- читаем строку из файла
- разбиваем её на элементы командой split
- формируем словарь (ключом будет компонент, значение - кол-во)
- выводим данные из словаря
Офлайн
0
А можно как то понаглядней?)
Офлайн
568
Решение в лоб
res = {} with open("data.dat", "r") as f: for i in f: comp = i.split()[1] res.setdefault(comp, 0) res[comp] += 1 print re
Офлайн
0
Вот что выдает:
Traceback (most recent call last):
File “D
Work/Phyton/112”, line 6, in <module>
comp = i.split()
IndexError: list index out of range
не подскажите вчем дело?
Офлайн
4
Смотрите какие получаются строки из файла или другая структура у вашего файла.
Офлайн
568
GrinaderОткройте файл в notepad и скриншот сюда.
не подскажите вчем дело?
Офлайн
0
Извеняюсь что так долго… ну вообщем вот скрин
Прикреплённый файлы:
Безымянный.png (23,4 KБ)
Офлайн
4
1) Посмотреть ваш txt-файл с данными.
2) В скрипте у вас ошибки:
в 4-й строке опечатка “i.splint” должно быть “i.split”
в 7-й строке дописать “print res”
Офлайн
43
exemple.txt надо было показать 
Офлайн