Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 20, 2009 22:54:34

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

работа со списком..

Доброй ночи!

Надо отпарсить список и убрать все пустые элементы и элементы содержащие пробелы.
Вот чего написал, почему не работает?

#!/usr/bin/python
# -*- coding:utf-8 -*-
import csv
import sys

f = open('/opt/otput.ini','r')

try:
reader = csv.reader(f)
writer = csv.writer(w)
mass = []
for row in reader:
mass = mass + row[0].split('\t')
n,m = (0,1)
while m < len(mass):
if mass[n:m]=='':
mass.remove('')
n+=1
m+=1
print mass
finally:
f.close()
Выводит мне список:
['[[router Router1]]', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'model=7200', '', '', '', '', '', '', 'image=http://www.altova.com', '', '', '', '', '', '', 'slot0=C7200-IO-2FE', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'f0/0=Router2 f0/0', '', '', '', '', '', '', '', 'f0/1=Router3 f0/1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'slot1=PA-FE-TX', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '[[router Router2]]', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'model=3660', '', '', '', '', '', '', 'image=http://www.altova.com', '', '', '', '', '', 'f0/0=Router1 f0/0', '', '', '', '', '', 'f0/1=Router3 f0/0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '[[router Router3]]', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'model=7200', '', '', '', '', '', '', 'image=http://www.altova.com', '', '', '', '', '', '', 'slot0=C7200-IO-2FE', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'f0/0=Router2 f0/1', '', '', '', '', '', '', '', 'f0/1=Router1 f0/1']



Офлайн

#2 Янв. 20, 2009 23:07:17

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

работа со списком..

Ой, не погуглил сразу ;-)

Вот решение: mass = filter(lambda i: i != '', mass)



Metheo
Доброй ночи!

Надо отпарсить список и убрать все пустые элементы и элементы содержащие пробелы.
Вот чего написал, почему не работает?
#!/usr/bin/python
# -*- coding:utf-8 -*-
import csv
import sys

f = open('/opt/otput.ini','r')

try:
reader = csv.reader(f)
writer = csv.writer(w)
mass = []
for row in reader:
mass = mass + row[0].split('\t')
n,m = (0,1)
while m < len(mass):
if mass[n:m]=='':
mass.remove('')
n+=1
m+=1
print mass
finally:
f.close()
Выводит мне список:
['[[router Router1]]', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'model=7200', '', '', '', '', '', '', 'image=http://www.altova.com', '', '', '', '', '', '', 'slot0=C7200-IO-2FE', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'f0/0=Router2 f0/0', '', '', '', '', '', '', '', 'f0/1=Router3 f0/1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'slot1=PA-FE-TX', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '[[router Router2]]', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'model=3660', '', '', '', '', '', '', 'image=http://www.altova.com', '', '', '', '', '', 'f0/0=Router1 f0/0', '', '', '', '', '', 'f0/1=Router3 f0/0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '[[router Router3]]', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'model=7200', '', '', '', '', '', '', 'image=http://www.altova.com', '', '', '', '', '', '', 'slot0=C7200-IO-2FE', '', '', '', '', '', '', '', '', '', '', '', '', '', '', 'f0/0=Router2 f0/1', '', '', '', '', '', '', '', 'f0/1=Router1 f0/1']



Офлайн

#3 Янв. 21, 2009 01:32:44

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

работа со списком..

> Вот решение: mass = filter(lambda i: i != '', mass)
filter(str.strip, lines)

..bw



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version