У меня есть данные файла, как показано ниже, я хочу рассчитать разницу во времени между двумя линиями для каждой станции (здесь PAR и PAY), я имею в виду, например, для PAR, который мы собираемся рассчитать '7 48 42.64 - 7 48 42.24' (7 = час, 48 = минута и 42,64 - второй).Как извлечь данные из файла?
2006 03 20 07 47 46.7 32.314 55.843 15.5 4.5
PAR GZ IP 7 48 42.24
PAR GZ IPg 7 48 42.64
PAR GZ EP 7 48 42.34
PAY GZ IPg 7 48 57.96
PAY GZ IP 7 48 57.59
PAY GZ EP 7 48 57.74
В моем коде информация о первой строке сохраняется в списке под названием «event_REF1», и для каждой строки в списке под названием «REF1_station». Сначала он ищет «IP», а затем «IPg», для PAR нет проблем, но для PAY он делает неправильный результат, потому что сначала у нас есть «IPg» в данных для этой станции.
if (REF1_station[0][2] == "IP "):
earlier = (float(REF1_station[0][3])*3600+
float(REF1_station[0][4])*60+
float(REF1_station[0][5])-
float(event_REF1[3])*3600-
float(event_REF1[4])*60-
float(event_REF1[5]))
if (REF1_station[0][2] == "IPg"):
later = (float(REF1_station[0][3])*3600+
float(REF1_station[0][4])*60+
float(REF1_station[0][5])-
float(event_REF1[3])*3600-
float(event_REF1[4])*60-
float(event_REF1[5]))
error = float((later - earlier)/2)
Результат:
PAR = 0,199999999999
PAY = 7,86
Вопросы, ищущих отладки помощи (** «почему работает не этот код?» **) должен включать в себя желаемое поведение, * конкретную проблему или ошибку * и * самый короткий код, необходимый *, чтобы воспроизвести его * * в самом вопросе **. Вопросы без ** ясного заявления о проблеме ** не полезны для других читателей. См. [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). – MattDMo