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 을 호출하기 때문에 사용 되었습니다.
'프로그래밍' 카테고리의 다른 글
[Macro] Chrome extension - DicPlus (0) | 2014.04.09 |
---|---|
[Tools] eclipse 에서 egit 사용법 및 conflict 해결법 (2) | 2014.04.07 |
[특강] 네이버 개발자 선배님 (0) | 2013.12.22 |
[Tools] eclipse 에서 printf() 가 콘솔창에 문자열을 출력하지 않을 때의 해결방법 (0) | 2013.12.01 |
[Java-Swing] WindowBuilder 이용하기 (10) | 2013.11.27 |