python: чайницкий вопрос про чтение из файла

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

python: чайницкий вопрос про чтение из файла

Непрочитанное сообщение moury » 2013-09-21 12:52:37

Пытаюсь освоить питон на примере своих практических задач. Кое-что идет с трудом. Подскажите, пожалуйста, как считать данные из текстового файла в многомерные э... массивы.

Вариант первый: три столбца

Код: Выделить всё

x  y   z(x,y)
Вариант второй: много столбцов

Код: Выделить всё

yyyy    mm   lat    data(yyyy,mm,lat,0)     data(yyyy,mm,lat,1) ...     data(yyyy,mm,lat,359) 
Заранее большое спасибо.
Сисадмин - вождь апачей

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

verwolfdotss
проходил мимо
Сообщения: 2
Зарегистрирован: 2013-10-02 17:45:56

Re: python: чайницкий вопрос про чтение из файла

Непрочитанное сообщение verwolfdotss » 2013-10-02 18:21:45

то есть формат файла примерно такой?

Код: Выделить всё

1989    02   11   data(1990,01,12,0)    data(1991,02,13,1)    data(1992,03,14,2)    ...   data(2013,10,99,999)
?

в этом случае можно считать построчно файл

Код: Выделить всё

with file("path-to_file", 'r') as f:
    for line in f:

каждую строку с помощью re.split('\s+', your_line) можно превратить в лист вида

Код: Выделить всё

['yyyy', 'mm', 'lat', 'data(yyyy,mm,lat,0)', 'data(yyyy,mm,lat,1)', 'data(yyyy,mm,lat,359)']
P.S. re это import re

теперь первые 3 вы просто можете извлеч по индексам(0,1,2) и запихать куда надо.
остальные можно например сматчить regexпом (вроде 'data(.+)'), засплитить по запятым и так же вытащить значения.

могу привести пример если со слов непонятно.