2012-06-07 2 views
0

Я совершенно новый для python и на самом деле не знаю слишком много. Я пытаюсь сортировать файл с тысячами строк по определенному полю. Скажем, мой файл info.txt Я хочу, чтобы отсортировать выглядит примерно так:Python: прочитайте txt-файл и сделайте класс из данных

test-23 2012 05 34 object-1-2 
test-21 2012 04 23 object-4-5 
test-09 2011 12 55 object-1-2 
test-11 2010 12 72 object-3-4 
test-12 2010 17 22 object-1-2 

Я пытаюсь отсортировать файл так, чтобы все объектные-х-х сгруппированные вместе и вывод сказать другой файл. Как так:

test-12, 2010, 17, 22, object-1-2  
test-23, 2012, 05, 34, object-1-2, 
test-09 2011, 12, 55, object-1-2 
test-11 2010, 12, 72, object-3-4 
test-21 2012, 04, 23, object-4-5 

Я пытаюсь сделать класс из этих данных, а также то, что я сделал до сих пор расколото поле с помощью .split («») я получаю что-то вроде этого для первая строка:

'test-12', '2010', '17', '22', 'object-1-2' 

и так далее для всех остальных линий ...

Теперь, когда он расщепляется, как я могу сделать класс из этого? Так что я могу назначить каждое поле?

+0

Вы знаете, как разделить на ',', это здорово. Поскольку вам нужно сортировать и группировать строки на основе '-x-y', почему бы не попробовать разделить на' -' и посмотреть, как это происходит? – nye17

+0

Что вы подразумеваете, делая класс из этих данных? Вы пытаетесь создать объект из данных или пытаетесь записать отсортированные данные в файл? – hndr

ответ

2

Если линии в списке lines, вы можете отсортировать их таким образом:

lines.sort(key=lambda line: line.split()[4]) 

Это сортирует их поле 4, поле «объект-х-у».