2013-01-13 2 views
1

2 행 헤더, 알 수없는 행 및 열 수의 csv 데이터 파일이 있습니다. 예를헤더 및 데이터가 포함 된 csv 파일을 읽고 xls 파일로 변환

"x", "y" 
"unit x", "unit y" 
1, 2 
3, 4 

을 위해 나는 CSV 파일을 읽고 문제는이 XLS에서 텍스트로 내 모든 데이터를 기록하는 XLS 파일

import csv, xlwt 

f = open('example.csv', 'rb') 
reader = csv.reader(f) 

workbook = xlwt.Workbook() 
sheet = workbook.add_sheet("Sheet 1") 

for rowi, row in enumerate(reader): 
    for coli, value in enumerate(row): 
     sheet.write(rowi,coli,value) 

workbook.save("example.xls") 

에 기록하려면 다음 코드를 사용합니다. 텍스트를 숫자로 변환하려면 어떻게해야합니까? 나는 처음 2 행이 헤더이고 데이터가 3 행에서 끝까지 시작한다는 것을 안다. 어떻게해야합니까?

+0

이미 비슷한 질문이 있지만 그 대답은 제 사례에는 적용되지 않습니다. – LWZ

답변

2

행 3 이후인지 확인하고 value을 int로 변환 할 수 있습니다.

for rowi, row in enumerate(reader): 
    for coli, value in enumerate(row): 
     if rowi >= 2: 
      value = int(value) 
     sheet.write(rowi, coli, value) 

모든 값을 숫자로 변환 해 볼 수도 있습니다.

for rowi, row in enumerate(reader): 
    for coli, value in enumerate(row): 
     try: 
      value = int(value) 
     except ValueError as e: 
      pass 
     sheet.write(rowi, coli, value) 
+0

감사합니다. 비록 모든 행에 대해 if 문을 검사하는 것이 불필요한 것처럼 보이지만 이것은 작동합니다. 어쩌면 그냥 루프 앞의 첫 번째 2 행을 작성하고 데이터 섹션에 대해서만 루프를 사용해야합니다. – LWZ

관련 문제