Python 파이썬/데이터 전처리

[Python] xls을 csv로 변경하기

bermmie 2020. 11. 20. 11:09

개요

 

일단, 어떠한 이유로 인해 Pandas를 사용해선 xls을 csv로 변경하는 것이 불가능한 것 같아 보인다.

 

해결책은 win32com이다.

 

win32com 라이브러리는 파이썬에서 윈도우 프로그램을 컨트롤하는 모듈이라고 한다.

 

파이썬에서 파일을 읽어와 형식을 변경하고 다시 내보내는게 아니라

 

RPA처럼 엑셀 작업을 파이썬이 대신해주는 것 같다. 헿...  


 

import win32com.client as win32

fileName = "파일이름"

asIs = ".xls"
toBe = ".csv"

initName = "".join([fileName, asIs])
finalName = "".join([fileName, toBe])

excel = win32.gencache.EnsureDispatch("Excel.Application")
wb = excel.Workbooks.Open(initName)

wb.SaveAs(finalName , FileFormat=6)
wb.Close()
excel.Application.Quit()

변수 설정 팁

 

FileFormat의 6은 .csv를 나타낸다.

 

다른 형식의 엑셀 확장자도 적용할 수 있다.

 

아래 주소를 타고가면 해당 Doucmentaion을 확인할 수 있다.

docs.microsoft.com/en-us/office/vba/api/excel.xlfileformat

 

XlFileFormat enumeration (Excel)

 

docs.microsoft.com


Lesson Learned

오랜된 형식의 엑셀 확장자여서 변경에 대해 지원해주지 않는 것일까?

생각치 못한 장애물을 마주하게 되서 당황스러웠다.

엑셀창이 켜지고 닫혀야 하는게 짜증난다.

게다가 csv의 수정은 모글창이 뜨기 때문에 일을 줄이려고 했는데 줄지 않는다 ㅋㅋ