상세 컨텐츠

본문 제목

파이썬으로 파일명 변경하기

IT/파이썬

by SageIN 2019. 5. 8. 11:04

본문

반응형

파이썬과 엑셀자료를 이용하여 파일명을 변경 해보자.

엑셀에 변경전 이름과 변경할 이름을 정리한다.

폴더에서 변경전 이름을 추출하는게 어려우시면

cmd 창에서

이름을 변경하고자 하는 파일들이 들어있는

폴더까지 이동하셔서 

dir /b > list.txt

해당폴더에 텍스트 파일이 추출됩니다

파일 엑셀파일로 가공하시면 되겠죠.

 

import xlrd
import os
import shutil

FileName = "이름변경.xlsx" #엑셀파일명
ReadWorkbook = xlrd.open_workbook(FileName) #엑셀오픈
ReadWorksheet = ReadWorkbook.sheet_by_index(0) #첫번째시트
ReadCols = ReadWorksheet.ncols	# 전체열수
ReadRows = ReadWorksheet.nrows  # 전체행수

 for row in range(ReadRows):
  if (row > 0): # 타이틀행 제외
           
            NameA = str(ReadWorksheet.cell_value(row, 0))  # 변경전 이름
            NameB = str(ReadWorksheet.cell_value(row, 1))  # 변경후 이름
            
            #예외처리
            try:
                os.rename(NameA,NameB)
            except:
                print(row,NameA,"-->",NameB) # 파일명 변경 실패시 처리

 

열을 읽어오면서 

os.rename(변경전,변경후)

함수를 이용해 변경한다.

반응형

관련글 더보기

댓글 영역

  • 프로필 사진
    2021.01.15 18:44
    엑셀파일을 못 읽는데 경로 지정 따로해줘야하나요?
  • 프로필 사진
    2021.05.31 13:28
    안녕하세요~ 글 감사히 잘 읽었습니다~
    저도 비슷하게, os.rename() 사용했는데, 다음과 같은 permission에러가 나더라고요 ㅠ
    혹시 아시는 거 있으신지 자문 구합니다 ㅠ

    [에러내용]
    PermissionError: [WinError 32] 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다: 'D:\\LYH_Python\\2. Tag\\태그정리_스마트스토어 kjcommerce 운동화 사이트검색어 태그파일_INSERT - 복사본 (2).xlsx' -> 'D:\\LYH_Python\\2. Tag\\스마트스토어 kjcommerce 운동화 사이트검색어 태그파일_INSERT_정리완료.xlsx'

    [코딩]
    #실행파일을 기준으로 해당경로 찾기
    exe_filename = 'SMS_Tag_ForInsert_Headless.exe'

    finding_dir = os.path.realpath(exe_filename)
    current_dir = finding_dir.replace(exe_filename, '')

    #폴더 내에, '태그정리'라는 파일을 모두 찾아와서, 작업 실행##########
    #경로 찾기, 내 파일명 기준으로
    xl_files = []
    for filename in os.listdir(current_dir) :
    if "태그정리_" in filename :
    xl_files.append(filename)

    #'태그정리'가 들어가 있는 모든 파일
    for xl_file in xl_files :
    excel = win32com.client.Dispatch("Excel.Application";)
    excel.visible = True
    open_file = os.path.realpath(xl_file)
    print('찾고 있는 경로는 : ', xl_file)
    excel_file = excel.Workbooks.Open(open_file)
    print(xl_file + "을 열었습니다";)


    #정리 완료된 파일 파일명 바꿔서 저장
    rename = filename.replace('태그정리_', '').replace('.xlsx', '') + '_정리완료.xlsx'
    os.rename(open_file, current_dir+rename)