Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 5, 2013 16:38:38

Grinader
Зарегистрирован: 2013-10-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачку)

Всем доброго времени суток. Вот скажем у меня есть .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 файла и их сумарное количество.
Заранее благодарен .

Офлайн

#2 Окт. 5, 2013 16:53:50

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

Помогите решить задачку)

Примерное решение:
- читаем строку из файла
- разбиваем её на элементы командой split
- формируем словарь (ключом будет компонент, значение - кол-во)
- выводим данные из словаря



wxPython

Офлайн

#3 Окт. 5, 2013 16:57:18

Grinader
Зарегистрирован: 2013-10-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачку)

А можно как то понаглядней?)

Офлайн

#4 Окт. 5, 2013 17:05:22

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите решить задачку)

Решение в лоб

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



Офлайн

#5 Окт. 5, 2013 17:18:48

Grinader
Зарегистрирован: 2013-10-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачку)

Вот что выдает:

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

не подскажите вчем дело?

Офлайн

#6 Окт. 5, 2013 17:22:53

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

Помогите решить задачку)

Смотрите какие получаются строки из файла или другая структура у вашего файла.



wxPython

Офлайн

#7 Окт. 5, 2013 17:27:56

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите решить задачку)

Grinader
не подскажите вчем дело?
Откройте файл в notepad и скриншот сюда.



Офлайн

#8 Окт. 7, 2013 12:58:56

Grinader
Зарегистрирован: 2013-10-05
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите решить задачку)

Извеняюсь что так долго… ну вообщем вот скрин

Прикреплённый файлы:
attachment Безымянный.png (23,4 KБ)

Офлайн

#9 Окт. 7, 2013 13:11:42

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

Помогите решить задачку)

1) Посмотреть ваш txt-файл с данными.
2) В скрипте у вас ошибки:
в 4-й строке опечатка “i.splint” должно быть “i.split”
в 7-й строке дописать “print res”



wxPython

Офлайн

#10 Окт. 7, 2013 13:12:58

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Помогите решить задачку)

exemple.txt надо было показать

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version