[Python] XlsxWriter 모듈
2022. 12. 12. 16:51
데이터에서 필요한 정보만 뽑아서 엑셀에 저장하려고 한다.
엑셀에 써야할 라인은 2000만 정도였다.
openpyxl을 사용했으며,
서버에 메모리가 몇 백만 라인을 쓰고 꽉 차서 더이상 진행되지 않았다.
검색해보니 xlsxwriter 모듈이 있었고
속도도 openpyxl보다 빠르며 메모리 옵션이 있어 데이터를 메모리에 저장하지 않고 쓸 수 있다.
엑셀파일을 읽지는 못하고 쓸 수만 있는 단점이 있지만 지금은 상관없다..
win32com도 있지만 서버가 리눅스여서 패스했다.
xlsxwriter 사용법
import xlsxwriter
workbook = xlsxwriter.Workbook('작업 경로',
{'constant_memory': True})
worksheet = workbook.add_worksheet('시트 제목')
title = ['열 제목1', '열 제목2', '열 제목3', ... , '열 제목n']
for t in title:
worksheet.write(0,title.index(t), t)
cnt = 0
for row in tqdm(xlsData):
cnt += 1
for col in row:
worksheet.write(cnt, row.index(col), col)
workbook.close()
이때 xlsData는 이중 리스트로
[[행 데이터1, 행 데이터2, ..., 행 데이터 n], [행 데이터1, 행 데이터2, ..., 행 데이터 n], ... , [행 데이터1, 행 데이터2, ..., 행 데이터 n]]
위와 같이 선언해줬다.
{'constant_memory': True} 옵션으로 메모리를 사용하지 않을 수 있다.
'업무 > 메모' 카테고리의 다른 글
[Python] 날짜에서 요일 가져오기 (0) | 2023.01.04 |
---|---|
[Python] 문자열이 한 글자들로 이루어졌는지 확인하기 (0) | 2022.12.29 |
[Python] 튜플을 문자열로 변환하기 (0) | 2022.12.27 |
[Python] 변수 타입 조건문 (0) | 2022.12.22 |
[Python] os.walk() UTF-8 오류 (0) | 2022.12.12 |