2013-08-07 5 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

"테이블"당신이 CSV와 같은 테이블을 나타내는 ASCII 아트 스타일 정당화 열 길이를 테이블 또는 * 데이터 *을 의미합니까? –

+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() 

(이 이미 다른 질문에 대한 질문 로그에서 숫자 ID의 스트립을했던 가정).

출력 :

으로
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