Найти - Пользователи
Полная версия: Помогите решить задачку)
Начало » Центр помощи » Помогите решить задачку)
1 2 3
Grinader
Всем доброго времени суток. Вот скажем у меня есть .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 файла и их сумарное количество.
Заранее благодарен .

Evgen_irk
Примерное решение:
- читаем строку из файла
- разбиваем её на элементы командой split
- формируем словарь (ключом будет компонент, значение - кол-во)
- выводим данные из словаря
Grinader
А можно как то понаглядней?)
FishHook
Решение в лоб
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
Grinader
Вот что выдает:

Traceback (most recent call last):
File “DWork/Phyton/112”, line 6, in <module>
comp = i.split()
IndexError: list index out of range

не подскажите вчем дело?
Evgen_irk
Смотрите какие получаются строки из файла или другая структура у вашего файла.
FishHook
Grinader
не подскажите вчем дело?
Откройте файл в notepad и скриншот сюда.
Grinader
Извеняюсь что так долго… ну вообщем вот скрин
Evgen_irk
1) Посмотреть ваш txt-файл с данными.
2) В скрипте у вас ошибки:
в 4-й строке опечатка “i.splint” должно быть “i.split”
в 7-й строке дописать “print res”
sergeek
exemple.txt надо было показать
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB