Форум сайта python.su
существует текстовый файл типа
[Name0]
string
string
string
[Name1]
string
string
string
[Name2]
string
string
string
Офлайн
ConfigParser
Онлайн
Очень интересная комманда, но не совсем то, у меня под названием раздела просто строки, а не значения
пример:
[5й класс]
Иванов
Петров
Офлайн
Типа так?
f = open('txt.txt')
classes = {}
current_class = None
for line in f.readlines():
if line.startswith('['):
current_class = line.strip('[]\n')
classes[current_class] = []
else:
classes[current_class].append(line.rstrip())
f.close()
print classes
Офлайн
тож не то, классов же несколько, должен быть двумерный список
пример:
[5й класс]
Иванов
Петров
[6й класс]
Сидоров
Пупкин
[7й класс]
Шлёпанцев
Коклюшкин
list[0][0] = "Иванов"
list[0][1] = "Петров"
list[1][0] = "Сидоров"
list[1][1] = "Пупкин"
list[2][0] = "Шлёпанцев"
list[2][1] = "Коклюшкин"
Офлайн
Как-то так ?
in_file = open('test.txt','r')
big_list = []
i = -1
for line in in_file:
if line.startswith('['):
big_list.append([])
i += 1
else:
big_list[i].append(line.strip())
Офлайн
гы )
big_list = in_file.read().split('[')[1:]
for n, i in enumerate(big_list):
big_list[n] = i.split('\n')[1:-1]
big_list[n] = [line for line in i.split('\n')[1:] if line]
Отредактировано (Окт. 31, 2010 02:57:01)
Офлайн
спасибо всем, сделал как написал pasaranax, всё работает
Офлайн
Вообще, я ради прикола написал, это не очень очевидный метод, и в реальном проекте я бы предпочел 2 вложенных цикла.
Офлайн
ну по приколу, не по приколу, но получилось вполне то что мне нужно (правда я не совсем догоняю что происходит в этом коде)
ну и собственно может покажеш вариант с двумя циклами? :]
Отредактировано (Ноя. 2, 2010 09:07:51)
Офлайн