태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.


2008/01/21 22:00

파일 이름 바꾸기 - 파이썬

리눅스에는 Regular Expression을 이용해서 파일 이름을 바꿀 수 있다는데, 그렇구나 하고 윈도우에서 쓰고싶어서 그냥 만들었음.

실행한 폴더내에서 패턴에 맞는 파일 이름들을 바꿔주는 기능.

# coding=euc-kr

import os
import re

def fileRename():
    fileList = os.listdir('.')
    
    print 'current dir:', os.getcwd()
    print 'file list:', fileList

    pattern = raw_input("\npattern (ex: '(?P[0-9]+).[0-9]+'): ").replace('\r', '')
    replace = raw_input("replace (ex: '\g'): ").replace('\r', '')
    
    print '\nfollowing files will be changed to:'
    
    for fileName in fileList:
        print fileName, '->', re.sub(pattern, replace, fileName)
        
    selection = raw_input('\nwant to change file names? (y/n/r): ').replace('\r', '')
    
    if selection == 'y':
        for fileName in fileList:
            os.rename(fileName, re.sub(pattern, replace, fileName))
        
        print '\nfile names successfully changed:', os.listdir('.')
    elif selection == 'n':
        print '\ncanceled'
    elif selection == 'r':
        print '\nretry'
        return False
    
    return True

if __name__ == '__main__':
    while fileRename() is not True:
        pass

Trackback 0 Comment 0