
엑셀 파일을 한번에 CSV 파일로 변환 방법
대부분의 직장인들이 데이터를 분석할 때는 대부분 엑셀을 사용한다. 엑셀은 정말 파워풀하고 유용한 기능들을 쉽게 사용할 수 있다. 나도 엑셀을 정말 사랑한다.
그런데 시간이 지나면서 기하급수적으로 쌓인 데이터들을 분석할 때 엑셀이 버거워하는 모습을 보인다. 예를들어 50만행의 데이터를 가진파일과 70만행의 데이터를 가진 파일을 vlookup하면 아마 시간이 엄청 오래 걸리거나 엑셀이 멈출것이다.
그래서 나는 데이터 분석을 할때 SQL을 이용한다. SQL을 이용하기 위해서는 나만의 DB를 구축해야 하는데 SQL DB를 업로드 하기 위해서는 엑셀파일을 CSV파일로 변환하는 작업이 필요하다.
엑셀 파일을 CSV로 변환하는 파이썬 코드
Python
import time
import pandas as pd
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class ExcelToCSVHandler(FileSystemEventHandler):
def __init__(self, watch_folder):
self.watch_folder = watch_folder
self.processed_files = set()
def on_created(self, event):
if not event.is_directory and event.src_path.lower().endswith(('.xlsx', '.xls')):
self.convert_excel_to_csv(event.src_path)
def on_modified(self, event):
if not event.is_directory and event.src_path.lower().endswith(('.xlsx', '.xls')):
self.convert_excel_to_csv(event.src_path)
def convert_excel_to_csv(self, excel_filepath):
filename, ext = os.path.splitext(os.path.basename(excel_filepath))
csv_filepath = os.path.join(self.watch_folder, f"{filename}.csv")
if excel_filepath not in self.processed_files and not os.path.exists(csv_filepath):
try:
df = pd.read_excel(excel_filepath)
df.to_csv(csv_filepath, index=False, encoding='utf-8-sig')
print(f"'{os.path.basename(excel_filepath)}'을(를) '{os.path.basename(csv_filepath)}'로 변환했습니다.")
self.processed_files.add(excel_filepath)
except Exception as e:
print(f"'{os.path.basename(excel_filepath)}' 변환 중 오류 발생: {e}")
def monitor_folder(folder_path):
event_handler = ExcelToCSVHandler(folder_path)
observer = Observer()
observer.schedule(event_handler, folder_path, recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
if __name__ == "__main__":
watch_folder = input("CSV 파일로 변환할 엑셀 파일이 있는 폴더 경로를 입력하세요: ")
if os.path.isdir(watch_folder):
print(f"'{watch_folder}' 폴더를 감시합니다...")
monitor_folder(watch_folder)
else:
print("유효하지 않은 폴더 경로입니다.")</code></pre>코드 실행 방법
우선 라이브러리 하나를 설치해야 합니다.
Python
pip install pandas watchdog코드 저장: 위의 파이썬 코드를 .py 확장자를 가진 파일 (예: excel_to_csv.py)로 저장합니다.
폴더 경로 입력: 스크립트를 실행하면 CSV 파일로 변환할 엑셀 파일이 있는 폴더 경로를 입력하라는 메시지가 나타납니다. 해당 폴더의 정확한 경로를 입력하고 Enter 키를 누릅니다.
실행: 스크립트가 실행되면 지정된 폴더를 감시하기 시작합니다. 이제 해당 폴더에 새로운 엑셀 파일(.xlsx 또는 .xls)을 넣거나 기존 엑셀 파일을 수정하고 저장하면 자동으로 CSV 파일로 변환됩니다.
종료: 스크립트 실행을 중단하려면 터미널 또는 명령 프롬프트에서 Ctrl + C를 누릅니다.
안녕하세요, 이것은 댓글입니다.
댓글의 검토, 편집, 삭제를 시작하려면 관리자 화면의 댓글 화면으로 가세요.
댓글 작성자의 아바타는 그라바타에서 전송됩니다.