class SList(list):
'''
Список строк хранимый в текстовом файле.
При сохранении элеметнов они приводятся к строке.
Пустые строки при сохранении и загрузке игнорируются.
Пробельные символы в начале и конце строки удаляются.
'''
def __init__(self, fn):
list.__init__(self)
self.fn = fn
try:
self.load()
except IOError:
pass
def load(self):
# загружаем список из файла
del self[:]
f = open(self.fn)
for s in f:
s = s.strip()
if not s:
continue
self.append(s)
f.close()
return self
def save(self):
# сохраняем список в файл построчно
f = open(self.fn, 'w')
i = 0
for s in self:
s = str(s).strip()
if not s:
continue
if i > 0:
f.write('\n')
f.write(s)
i += 1
f.close()
return self
# SList
a = SList('slist.txt')
a.append('новая строка')
a.save()
a = SList('slist.txt')
print a
# а так можно привести файл к нормальному виду
# удалить пустые строки и крайние пробелы
SList('slist.txt').save()