Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 5, 2011 20:01:54

vlados
От:
Зарегистрирован: 2011-07-28
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

Странный вопрос...

У меня есть файл с примерно таким содержимым, там не только цифры, но и текст.

<la>1</la>
<q>11</q>
<la>2</la>
<q>22</q>
<la>3</la>
<q>33</q>
<la>4</la>
<q>44</q>
Название в тегах “la”, описание в теге “q”.
Нужно открыть файл, выбрать 1-е название и 1-е описание и присвоить в переменную, для дальнейшей работы, все это в цикле, то есть с первым названием и описанием закончили работу, приступаем ко второму названию и описанию, и так далее пока не кончатся содержимое…
Пробовал так но не вышло, билеберду выводит и не правильно работает….
import re

f = open('1')

for i in f:
pname = re.findall(r'<la>(.*?)</la>', i)
pcontent = re.findall(r'<q>(.*?)</q>', i)
print pname
print pcontent



Офлайн

#2 Авг. 5, 2011 20:14:29

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Странный вопрос...

Для начала надо было сделать сплит файла…

string.split.....
Но вообще это ни к чему, и все данные можно получить без цикла.. А цикл с нужными функциями уже ниже добавить.
 # -*- coding: utf8 -*-
import re
f = '''<la>1</la>
<q>11</q>
<la>2</la>
<q>22</q>
<la>3</la>
<q>33</q>
<la>4</la>
<q>44</q>''' #тут открывайте файл.

pname = re.findall(r'<la>(.*?)</la>', f)
pcontent = re.findall(r'<q>(.*?)</q>', f)
print pname, pcontent

for one, two in zip(pname, pcontent):
print one
print two

Отредактировано (Авг. 5, 2011 23:52:55)

Офлайн

#3 Авг. 5, 2011 20:24:56

vlados
От:
Зарегистрирован: 2011-07-28
Сообщения: 64
Репутация: +  0  -
Профиль   Отправить e-mail  

Странный вопрос...

boltayka, спасибо!!!!
А что значит функция zip?



Офлайн

#4 Авг. 5, 2011 23:51:32

boltayka
От:
Зарегистрирован: 2009-10-07
Сообщения: 68
Репутация: +  0  -
Профиль   Отправить e-mail  

Странный вопрос...

vlados
А что значит функция zip?
Синхронная работа с несколькими циклами…
Строка for one, two in zip(pname, pcontent) объединяет for one in pname и for two in pcontent на одном уровне…

Отредактировано (Авг. 5, 2011 23:54:49)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version