개발/네이버 Q&A

파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는 배치 파일이나 파이썬 코드

beomcoder 2023. 10. 18. 11:03
728x90
반응형

https://kin.naver.com/qna/detail.naver?d1id=1&dirId=10402&docId=456810597&mode=answer

 

파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는 배치 파일이나 파이...

파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는배치 파일이나 파이썬 코드가 필요한데 만들어 주실 분 계실까요?하위폴더들 안의 파일들도 동시에 처리되면 좋겠습니다.

kin.naver.com

네이버 지식인 질문

파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는 배치 파일이나 파이썬 코드 (하위폴더 포함)
파일명 뒤에 0으로 채워 자릿수 맞추고 일괄 변경하는
배치 파일이나 파이썬 코드가 필요한데 만들어 주실 분 계실까요?
하위폴더들 안의 파일들도 동시에 처리되면 좋겠습니다.




답변
import os

def rename_files(directory):
    # 모든 폴더를 돌면서 가장 긴 파일이름의 길이를 저장시켜놔서 거기에 맞춰 0을 추가하려고 함.
    max_length = 0
    for root, dirs, files in os.walk(directory):
        for filename in files:
            base_name, ext = os.path.splitext(filename)
            max_length = max(max_length, len(base_name))

    # 다시 한번 모든 폴더를 돌면서 파일이름옆에 가장 긴 파일의 길이에 맞춰 0을 추가하여 저장함.
    for root, dirs, files in os.walk(directory):
        for filename in files:
            base_name, ext = os.path.splitext(filename)
            new_filename = base_name.ljust(max_length, '0') + ext
            os.rename(os.path.join(root, filename), os.path.join(root, new_filename))

directory = input("파일들이 있는 디렉토리 경로를 입력하세요: ")
rename_files(directory)
print("작업이 완료되었습니다.")
728x90
반응형