programming/Python

파이썬으로 파일 확장자 자동 변환하기(csv -> xlsx) & 파일 삭제하기_[파이썬/엑셀]

Jofresh 2023. 5. 30. 17:39
728x90
반응형

안녕하세요.

조신선입니다.

 

sql을 다루시는 분들이나 db 관련 업무 하시다보면 대부분 확장자가 csv로 다운로드 됩니다.

내가 이걸 열면 괜찮은데, csv파일을 슬랙이나 다른 메신저로 공유하면 상대방이 열지 못 하는 경우가 굉장히 많더라구요.

그래서 일일이 확장자를 수동으로 변환해서 재공유하곤 했었는데요. 그게 너무 귀찮아서

파이썬으로 내가 원하는 파일에 있는 모든 파일의 csv 확장자를 찾아서 xlsx로 변환시키는 코드를 만들었습니다.

 

 

그래서 오늘은 파이썬을 활용해서 엑셀 확장자를 변환하는 방법에 대해서 포스팅하겠습니다.

 

 

아주 심플합니다. 

import os
import pandas as pd

# 맥북 다운로드 폴더 경로
download_dir = os.path.expanduser('~/Downloads')

# 모든 .csv 파일을 찾아서 엑셀 파일로 변환
for file_name in os.listdir(download_dir):
    if file_name.endswith('.csv'):
        # csv 파일을 읽어서 데이터프레임으로 변환
        df = pd.read_csv(os.path.join(download_dir, file_name))
        # 새로운 파일 이름을 생성
        new_file_name = os.path.splitext(file_name)[0] + '.xlsx'
        # 데이터프레임을 엑셀 파일로 저장
        df.to_excel(os.path.join(download_dir, new_file_name), index=False)
        # 변환된 파일 이름을 출력
        print(f'{file_name} -> {new_file_name} 변환 완료')
728x90

주석을 달았지만, 더 상세하게 코드를 한 줄 한 줄 설명해드리겠습니다. 

더보기 클릭 ▼

더보기

위 코드는 맥북의 다운로드 폴더에서 모든 .csv 파일을 찾아 엑셀 파일로 변환하는 기능을 수행합니다. 코드에 대한 설명은 다음과 같습니다:

  1. import os: 파일 및 폴더 경로 조작을 위해 필요한 os 모듈을 임포트합니다.
  2. import pandas as pd: 데이터프레임 작업을 위해 필요한 pandas 모듈을 임포트합니다.
  3. download_dir = os.path.expanduser('~/Downloads'): 맥북의 다운로드 폴더 경로를 변수에 저장합니다. ~는 홈 디렉토리를 나타냅니다.
  4. for file_name in os.listdir(download_dir):: 다운로드 폴더의 모든 파일에 대해 반복합니다.
  5. if file_name.endswith('.csv'):: 파일 이름이 .csv로 끝나는 경우에만 실행합니다.
  6. df = pd.read_csv(os.path.join(download_dir, file_name)): csv 파일을 pandas의 read_csv 함수를 사용하여 데이터프레임으로 읽어옵니다.
  7. new_file_name = os.path.splitext(file_name)[0] + '.xlsx': 새로운 파일 이름을 생성합니다. 기존 파일 이름에서 확장자를 제거하고 .xlsx 확장자를 추가합니다.
  8. df.to_excel(os.path.join(download_dir, new_file_name), index=False): 데이터프레임을 to_excel 함수를 사용하여 엑셀 파일로 저장합니다. index=False로 설정하여 인덱스를 저장하지 않도록 합니다.
  9. print(f'{file_name} -> {new_file_name} 변환 완료'): 변환된 파일 이름을 출력합니다.

이 코드를 실행하면 다운로드 폴더에서 .csv 파일을 찾아 엑셀 파일로 변환하고 변환된 파일 이름을 출력합니다.

 

위 코드를 실행하면 아래와 같이 xlsx파일을 생성해냅니다. 

 

물론 코드 몇 줄 더 써서 기존 csv파일을 삭제 할 수도 있지만, 혹시 원본 데이터가 필요할 수도 있기 때문에 남겨두었습니다.

 

 

그래도 혹시 모르니깐 파일 삭제하는 코드도 간단하게 공유드릴께요!

import os

# 삭제할 파일 경로
file_path = "/path/to/file.txt"

# 파일 삭제
try:
    os.remove(file_path)
    print(f"{file_path} 파일이 삭제되었습니다.")
except OSError as e:
    print(f"파일 삭제 에러: {e}")

 

이상입니다.

 

 

 

728x90
반응형