Уведомления

Группа в Telegram: @pythonsu

#1 Май 10, 2014 12:33:24

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Если я читаю файл построчно

Здравствуйте уважаемые форумчане.
Простите что создаю похожую тему.

Если я читаю файл построчно и есть у меня два регулярных выражения,

or line in open('1.txt'):
    str_lic_scheta = re.match(r'(Лиц\.счёт)(\s{1,3}\d{1,4})(\s{1,10}.*)', line)
    summa_k_oplate = re.match(r'(с\-\s{1,3}\d\d\-\d\d\-\d\d\d\d|\s{10,22})(\s{1,8}Сумма\s{1,3}к\s{1,3}оплате) (\s{1,4}\d{1,6}\.\d{1,2})', line)
соотвествено если в одной строке данные не найдены мне возвращается None.
Вопрос такой как мне создать такой словарь
[code python] slovar = {str_lic_scheta.group(2):[str_lic_scheta.group(3),summa_k_oplate.group(3)]}[/code]
, что бы мне вместо значений не записывались None?
Ведь если я правильно понимаю в моем случае, данные должны быть найдены одновременно, а если данные регулярным выражением найдены не одновременно, их надо где то временно хранить.


Отредактировано ingfa_1981 (Май 10, 2014 12:34:39)

Офлайн

#2 Май 10, 2014 20:10:04

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Если я читаю файл построчно

Нихера не понял.

Офлайн

#3 Май 10, 2014 22:12:50

ingfa_1981
Зарегистрирован: 2014-01-25
Сообщения: 200
Репутация: +  1  -
Профиль   Адрес электронной почты  

Если я читаю файл построчно

Если этому -> str_lic_scheta = re.match(r'(Лиц\.счёт)(\s{1,3}\d{1,4})(\s{1,10}.*)', line) передавалась строка из файла 1.txt в которой ничего не нашлось, возвратилось None. А мне необходимо составить словарь из то что все таки нашлось slovar = {str_lic_scheta.group(2):}. Как мне сохранить значение в переменную и дождаться пока найдется вторая строка. И затем записать это в словарь ?

Офлайн

#4 Май 10, 2014 22:26:05

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

Если я читаю файл построчно

ingfa_1981
Как мне сохранить значение в переменную и дождаться пока найдется вторая строка.
нужно несколько if'ов

var1 = var2 = None
for line in file:
if var1 is None:
search var1
if var2 is None:
search var2
if var1 and var2:
add var1 and var2
var1 = var2 = None

if var1 or var2:
exception



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version