Python 을 이용하여, 폴더 내의 파일 이름을 일괄 변환하는 방법입니다.


C:\Users\Xman\Desktop 폴더가 있다고 합시다. 이 폴더에 있는 "a01.txt", "a02.txt"... 를 "a1.txt", "a2.txt" ... 로 일괄 변환하고 싶다면 파일 이름을 [:1]+[-5:] 로 변환 하면 됩니다. (0을 기준으로 왼쪽, 오른쪽을 잘라내어 다시 붙임) 여기서 1, -5 는 각각 앞에서부터 첫번째 글자, 뒤에서부터 다섯번째 글자를 뜻합니다. 상황에 맞게 수정하여 아래 코드를 실행 합니다.

import os
path = "C:\\Users\\Xman\\Desktop\\"     # \는 두 번 적는다.
for filename in os.listdir(path):
     if filename[-3:] is "txt":     # txt 파일이면
          os.rename(path+filename, path+filename[:1]+filename[-5:])

정규표현식을 이용하여 파일 이름을 일괄 변환하고 싶다면 아래를 참고 합니다.

Batch Renaming of Files in a Directory

import glob, os

def rename(dir, pattern, titlePattern):
    for pathAndFilename in glob.iglob(os.path.join(dir, pattern)):
        title, ext = os.path.splitext(os.path.basename(pathAndFilename))
        os.rename(pathAndFilename, os.path.join(dir, titlePattern % title + ext))

glob.iglob

iterator 반환. 안되면 glob.glob 를 대신 써 봅시다.


os.path.join

dir \\ pattern 형태를 만들어 줍니다.


os.path.splitext

파일 확장자를 쪼갭니다.


os.path.basename

파일 경로에서 파일 이름만을 추출 합니다.


titlePattern % title + ext

% 는 titlePattern 에서 %s 형태로 title 을 호출하기 때문에 사용 되었습니다.