엔지니어 동행하기

Python, 폴더 내의 폴더이름 바꾸기 본문

Python

Python, 폴더 내의 폴더이름 바꾸기

엔지니어 설리번 2022. 7. 3. 14:00
반응형
Python을 이용하면, 실무에서 수작업으로 해야 하는 작업을 자동으로 처리할 수 있습니다. 한 가지 예로 이미 폴더 구조가 다 짜여 있는 상황에서, 일괄적으로 특정 규칙을 적용해서 폴더 이름을 바꿔야 하는 경우가 있습니다. 이번 포스팅에서는 이런 업무를 어떻게 자동화할 수 있는지에 대해 설명드리겠습니다.

 

폴더 이름 바꾸기

폴더의 이름을 바꾸는 코드는 다음과 같습니다. 

#change_folder_name.py
import os
os.rename("Folder", "Folder_changed")

이 때, change_folder_name.py은 바꾸고자 하는 폴더(Folder)와 같은 경로에 있어야 합니다. 같은 경로에 "Folder"이름의 폴더가 없으면 에러가 납니다. 이 상태에서 python3 change_folder_name.py 명령어를 실행하면 폴더 이름을 바꿀 수 있습니다.

 

폴더 내의 폴더 이름 바꾸기

폴더 이름 변경 전
폴더 이름 변경 후

위와 같이 Base Folder 내에 있는 폴더들의 이름을 특정 규칙을 적용해 바꾸고 싶은 경우, 아래와 같은 코드를 사용하면 됩니다. 

import os

# Intialize
folder_list=[]    
base_path = 'Base Folder'

# Base Folder내에 있는 폴더이름 저장
with os.scandir(base_path) as entries:
    for entry in entries:
        if entry.is_dir():
            folder_list.append(entry.name)
            print(entry.name)

# 폴더 이름에 하나씩 접근하면서 이름 변경
for folder_name in folder_list:
    folder_path=base_path+'/'+folder_name
    with os.scandir(folder_path) as entries:
        for entry in entries:
            if entry.name == 'Folder1':
                src = os.path.join(folder_path, entry.name)
                dst = os.path.join(folder_path, 'Folder1_changed')
                os.rename(src, dst)
            if entry.name == 'Folder2':
                src = os.path.join(folder_path, entry.name)
                dst = os.path.join(folder_path, 'Folder2_changed')
                os.rename(src, dst)

반응형
Comments