спасибо :)
а возможно ли преобразовать спискок в отдельные строки? Или лучше все операции над строками производить в теле функции, и потом уже получить список с необходимыми параметрами ?
['slovo1 slovo2', 'slovo3 slovo4', 'slovo5 slovo6', 'slovo7 slovo8', 'slovo9 slovo10', 'etc etc']
['slovo3 slovo4', 'slovo5 slovo6']
for x in your_list:
if 'slovo3' in x and 'slovo5' in x:print x
igor.kaistчет такой подход у меня так и не заработал… программа вообще не выдает никаких результатовfor x in your_list:
if 'slovo3' in x and 'slovo5' in x:print x
#!/usr/bin/python
import string
import re
ap = open('./kuku.map','r')
s = ap.xreadlines()
slovo3 = 'DATA'
slovo4 = 'NAME'
def parser():
result = None
while True:
line = yield result
result = None
line = line.strip()
if line.startswith('LAYER'):
block = []
name = None
while True:
block.append(line)
line = yield None
line = line.strip()
if line.startswith('NAME'):
lst = line.split()
lst.pop(0)
name = lst.pop(0)
if re.search('#[ ]*?NAME|#[ ]*?GROUP', line):
break
if string.find(line, 'DATA|TILEINDEX'):
pass
else:
break
if line.startswith('END'):
result = (name, block)
break
p = parser()
p.send(None)
#siter = iter(p.send(line))
#for x in s:
# ret = p.send(line)
# if ret:
# print x
for line in s:
ret = p.send(line)
for x in line:
if slovo3 in line and slovo4 in line:
print x
else:
print "asdaSD"
LAYER
TYPE Raster
DATA slovo
END
LAYER
TYPE Polygon
DATA slovo
END
LAYER
TYPE Raster
DATA slovo
END
LAYER
TYPE Polygon
DATA slovo
END
if string.find(line, 'Raster') == -1: // типа, чтобы строки с 'TYPE Raster' вообще не выводились
break
else:
pass
if re.search('#[ ]*GROUP|#[ ]*Group|#[ ]*NAME|#[ ]*Name', line): break
....
....
else .... тут все работает :)
if re.search('PRIWET', line): break # не работает :*
else:
....
....
if not string.find(line, 'PRIWET'): print 'baskdsad' # а в таком случае все равно выводит строку где слова ПРИВЕТ нету :/
else: # хотя и печатает на выходе 'baskdsad'
...
...