2013-07-01 2 views
0

각 파일에 여러 시트가있는 여러 파일에서 머리글 행 (첫 번째 행)을 추출하려고합니다. 각 시트의 출력은 각 시트와 각 파일의 모든 헤더가 포함 된 새 마스터 파일에 저장되고 첨부되어야합니다.통합 문서에 row_slice 정보 저장 xlrd python

가장 쉬운 방법은 row_slice 명령을 사용하는 것입니다. 그러나 파일의 출력은 Cell 객체 목록이므로 해당 색인에 액세스 할 수없는 것 같습니다.

새로운 통합 문서로 추출 된 데이터를 저장하는 방법을 찾고 있습니다.

from xlrd import open_workbook,cellname 
book = open_workbook('E:\Files_combine\MOU worksheets 2012\Walmart-GE_MOU 2012-209_worksheet_v03.xls') 
last_index = len(book.sheet_names()) 
for sheet_index in range(last_index): 
sheet = book.sheet_by_index(sheet_index) 
print sheet.name 
print sheet.row_slice(0,1) 

I 출력을 얻을 새 파일에 입력으로 저장할 수 없습니다 : 여기

내가 지금까지 가지고있는 코드입니다. 또한 100 개 이상의 파일에 대해이 프로세스를 자동화하는 방법에 대한 아이디어도 환영 할 것입니다.

답변

1

CSV 파일에 출력을 저장하고 모든 파일 이름을 통해 루프 루프의 os.listdir하고 사용할 수 있습니다

import csv 
import os 

from xlrd import open_workbook, cellname 

EXCEL_DIR = 'E:\Files_combine\MOU worksheets 2012' 
with open("headers.csv", 'w') as csv_file: 
    writer = csv.writer(csv_file) 
    for file_name in os.listdir(EXCEL_DIR): 
     if file_name.endswith("xls"): 
      book = open_workbook(os.path.join(EXCEL_DIR, file_name)) 
      for index, name in enumerate(book.sheet_names()): 
       sheet = book.sheet_by_index(index) 
       #the write row method takes a sequence 
       #I assume that row_slice returns a list or a tuple 
       writer.writerow(sheet.row_slice(0,1)) 
관련 문제