2013-10-10 2 views
0
the_list = [['a','b','c'],['b','c','d'],['c','d','e']] 
output = [] 
for k in the_list: 
    output.append(str(k)[1:-1].replace(',',"\t").replace("'",'').replace(' ','')) 

print output 
#['a\tb\tc', 'b\tc\td', 'c\td\te'] 
#for line in output: 
    #out_file.write(line + '\n') 

목록을 탭으로 구분 된 형식으로 가져와 .xls 파일에 쓸 수 있지만 그 방법을 알아낼 수있는 유일한 방법은 꽤 단조로운 것 같습니다. 사람이.xls 파일에 목록을 쓰는 대부분의 'pythonic'방법?

답변

1

당신은 지능형리스트

output = ["\t".join(a) for a in the_list] 
으로 찾고있는 서식을 달성 할 수있는 .XLS에 목록을 작성하는 빠르고,보다 효율적으로, 그리고 더 '파이썬'방법을 알고 있는지 궁금 해서요

join에 대한 Python의 설명서를 참조하십시오.

+0

나는 조인을 사용하는 방법이 있다는 것을 알고있었습니다! –

1

내장 된 csv 라이브러리를 사용하십시오. http://docs.python.org/2/library/csv.html

out_file 이미 예제의 주석 부분과 같이 열립니다 가정 :

output_writer = csv.writer(out_file, delimiter="\t") 
output_writer.writerows(the_list) 

조금 학자 연, 당신은 실제 엑셀이 아닌 탭으로 구분 된 파일을 쓰기 위해 노력하고 있습니다. Excel에서는 탭으로 구분 된 파일을 처리 할 수 ​​있지만 Excel이 필요하면 xlwt이 일반적인 라이브러리입니다. 내가 여기에 주어진 답변을 사용, 당신은 XLS에 기록해야하는 경우

wb = xlwt.Workbook() 
ws = wb.add_sheet('sheet_name') 
for rownum, sublist in enumerate(the_list): 
    for colnum, value in enumerate(sublist): 
     ws.write(rownum, colnum, value) 
wb.save(out_file) 
0

탭을 사용하는 동안 변수를 분리 또는 CSV는 것이다 UTF-8이 필요한 경우 종종 작동합니다. ASCII 범위를 벗어나면 예상되는 문자를 볼 수 없습니다.

saxman01의 참조에서 언급 한 실제 Excel 제품을 사용해 본적이 없지만 대상이 실제로 Excel 인 경우 더 적합 할 수 있습니다. 다른 문자 집합을 처리합니까? 국제 사회 (또는 심지어 영어가 아닌 사람들에게 국내에 나가야 할 경우)에 대해 생각해 볼만한 것입니다.

그러면 Google 문서 도구는 무엇을 할 수 있습니까?