Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 30, 2012 17:22:13

rivawi
Зарегистрирован: 2012-10-30
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

работа с несколькими строками из файла

Доброго времени суток

Имеется файл в каждой строке которого содержится участок типа
name 1 “X”; name 2 “Y”;
где Х - пятнадцать символов, Y - число с 10ю знаками после запятой
В случае если значения name 1 одинаковые (повторяются), то нужно посчитать процентное значение для каждого name 2, если нет, то значение в процентах - 100, затем записать в конец строки проценты. При этом если значения повторяются, то они обязательно идут подряд.

Случай, когда надо было просто найти и посчитать проценты для значения во всех строках решился вот так

with open(N, 'r+') as f1:
    for number, line in enumerate(f1.readlines()):
        index = line.find('name 2')
        L = line[index+6:index+16]
        A = float(A) + float(L)
f1.close ()
with open(N, 'r+') as f1:
    for number, line in enumerate(f1.readlines()):
        index = line.find('name 2')
        L = line[index+6:index+16]
        P = float(L) / float(A) * 100
        f2.write(line [0:index+37] + ' percent = ' + str(P) + '\n')

но там была неизменная длина значения name 2

здесь же нужно сравнить значения из одного поля и при их совпадении вычислить проценты от значения другого поля, причем одинаковых name 1 может быть разное число и значение name 2 может быть разным по длине…
а как это сделать я не понимаю…

Заранее спасибо если подскажете как это реализрвать или что прочесть, чтобы понять как это сделать…

Офлайн

#2 Окт. 30, 2012 22:14:11

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

работа с несколькими строками из файла

split вам подойдет здесь.
На будущее почитайте о re



Офлайн

#3 Окт. 31, 2012 04:14:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10019
Репутация: +  857  -
Профиль   Отправить e-mail  

работа с несколькими строками из файла

rivawi
f1.close ()
файл уже закрыт автоматически с помощью with

rivawi
В случае если значения name 1 одинаковые (повторяются), то нужно посчитать процентное значение для каждого name 2, если нет, то значение в процентах - 100, затем записать в конец строки проценты.
лучше пример файла ввода и пример файла результата



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version