2013-08-07 4 views
0

Я пытаюсь написать сжатый список музыкальных треков, время их воспроизведения и исполнителя в текстовый файл в виде таблицы.Написание таблицы в текстовом файле

Однако в настоящее время дорожки в виде списка, т.е.

08:04:10 Current Track Playing = Skinny Genes - Eliza Doolittle 

08:07:09 Current Track Playing = Keep On Walking - Scouting For Girls 

08:10:45 Current Track Playing = Thinking of Me - Olly Murs 

08:14:01 Current Track Playing = Hangin' On A String - Loose Ends 

08:17:34 Current Track Playing = Together Again - Janet Jackson 

На протяжении всего текстового файла.

Мой код выглядит следующим образом

open('log','w').writelines([(line[:33]+line[42:]) 
    for line in open(fl) if "Current Track Playing" in line]) 

Любые идеи о том, как поместить данные в таблицу, а не просто список?

+2

Под «столом» вы имеете в виде в ASCII-арт таблицу стилей с оправданной длиной столбцов, или * данные *, представляющую таблицу, как CSV? –

+0

Почему это отмеченное 'tkinter'? – iCodez

+0

@LukasGraf данные, представляющие таблицу, извините за недоразумение – user2595340

ответ

1

Используйте csv.writer для записи данных в формате CSV в файлы.

Пример:

import csv 
import re 

pattern = re.compile('([0-9]*:[0-9]*:[0-9]*) Current Track Playing = ([^-]*?) - ([^-]*)$') 

csv_file = open('music.csv', 'wb') 
csv_writer = csv.writer(csv_file, 
         delimiter=';', 
         quotechar='"', 
         quoting=csv.QUOTE_MINIMAL) 

with open('music.log', 'r') as music_log: 
    for line in music_log: 
     timestamp, song, artist = pattern.match(line.strip()).groups() 
     csv_writer.writerow([timestamp, song, artist]) 

csv_file.close() 

(Это предполагает, что вы уже сделали обнажать числовые идентификаторы из журнала вы спросили о другом вопросе).

Выход:

08:04:10;Skinny Genes;Eliza Doolittle 
08:07:09;Keep On Walking;Scouting For Girls 
08:10:45;Thinking of Me;Olly Murs 
08:14:01;Hangin' On A String;Loose Ends 
08:17:34;Together Again;Janet Jackson 
Смежные вопросы