파이썬으로 쉽고 빠르게 빈 폴더 찾아서 폴더명 바꾸기
본문 바로가기
파이썬(Python)/파이썬 개발

파이썬으로 쉽고 빠르게 빈 폴더 찾아서 폴더명 바꾸기

by Squat Lee 2021. 10. 16.

컴퓨터를 사용해서 일을 하다보면, 많은 폴더를 사용할 때가 있습니다.

 

좀 더 복잡하고, 정신없이 일을 하다보면 빈 폴더도 여러개 만들어질 때도 있습니다.

 

이럴때 빈폴더인지 여부를 파이썬을 이용해서 쉽고, 빠르게 찾아낼 수 있습니다.

 

더욱이 빈폴더의 폴더명을 바꿔서 표시하는 것도 가능합니다. 파이선을 잘 활용하면, 여유있게 일을 할 수도 있겠네요. 

 

from tkinter import *

import os

 

가져올 모듈은 'tkinter'와 'os' 모듈입니다.

 

사실 'os' 모듈만 있어도, 원하는 기능을 작동하기에 충분하지만, 나중에 exe 파일로 만들어서 보다 편리하게 사용하기 위해서 'tkinter'도 함께 사용했습니다.

 

win = Tk()

 

lbl = Label(win, text='현재 폴더에서 빈폴더를 찾습니다.')

lbl.pack()

 

btn = Button(win, text='클릭', command=chk_folder)

btn.pack()

 

win.mainloop()

 

tkinter로 UI를 간단하게 만들었습니다.

 

레이블과 버튼만 만들었고, 실제 빈 폴더를 찾을 동작을 할 코드는 별도의 함수로 만들어서 버튼에 연결했습니다.

 

def chk_folder():

    folder = os.getcwd()

    folder_list = os.listdir(folder)

 

'chk_folder'라는 함수를 만들었습니다.

'os.getcwd()'를 사용해서 현재 본 코드가 구동되는 위치를 가져와서 'folder'라는 변수에 저장했습니다.

현재 디렉토리에 여러 파일을 하나씩 확인해서 빈폴더 여부를 확인해야 하기에, 모든 폴더를 리스트 형태로 가져와서 'folder_list'라는 변수에 저장했습니다.

 

    for i in folder_list: #'(파일없음)'이라고 적힌 부분을 폴더명에서 삭제

        if '(파일없음)' in i:

            os.rename(folder + '/' + i, folder + '/' + i.replace('(파일없음)'''))

 

이 프로그램을 한 번만 사용할건 아니기 때문에 기존에 '(파일없음)'이라고 폴더명에 표시된 것은 기존에 사용하던 파일명으로 바꾸었습니다. "os.rename(기존파일명, 변경파일명)"을 사용하면, 폴더이름을 변경할 수 있습니다.

 

    new_list = os.listdir(folder)

 

번거롭지만 변경된 파일명이 있을 수 있기 때문에, 폴더명을 list로 다시 불러와서 'new_list'라는 변수에 저장했습니다.

 

    for n in new_list:

        if n[-4:] != "xlsx" and n[-3:] != "exe":

 

            if len(os.listdir(folder + '/' + n)) == 0#내부에 파일 또는 폴더 개수가 0이면 True

                os.rename(folder + '/' + n, folder + '/' + "(파일없음)" + n)

 

폴더명만 확인해서 변경하기 위해서 엑셀파일이나 실행파일은 제외하고 폴더를 하나씩 확인합니다. 확인하고자 하는 폴더내에 파일이나 폴더의 개수가 0개이면, 폴더 이름 앞에다 "(파일없음)"을 적어서 폴더명을 바꿔줍니다.

 

 

잘 작동하는지 시험해 보기 위해 '새폴더'라는 디렉토리에 3개의 폴더를 임으로 만들어서 하나만, 폴더를 넣었습니다.

 

파이썬코드를 실행하면, 허접한 tkinter UI가 나옵니다. 상업용으로 판매할건 아니니깐 허접해도 상관 없겠죠? 클릭 버튼을 눌러 봅니다.

 

빈폴더의 이름이 자동으로 변경되었습니다. 

 

전체 코드는 아래와 같습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from tkinter import *
import os
 
def chk_folder():
    folder = os.getcwd()
    folder_list = os.listdir(folder)
 
    for i in folder_list: #'(파일없음)'이라고 적힌 부분을 폴더명에서 삭제
        if '(파일없음)' in i:
            os.rename(folder + '/' + i, folder + '/' + i.replace('(파일없음)'''))
 
    new_list = os.listdir(folder)
 
    for n in new_list:
        if n[-4:] != "xlsx" and n[-3:] != "exe":
 
            if len(os.listdir(folder + '/' + n)) == 0#내부에 파일 또는 폴더 개수가 0이면 True
                os.rename(folder + '/' + n, folder + '/' + "(파일없음)" + n)
 
win = Tk()
 
lbl = Label(win, text='현재 폴더에서 빈폴더를 찾습니다.')
lbl.pack()
 
btn = Button(win, text='클릭', command=chk_folder)
btn.pack()
 
win.mainloop()
cs
728x90
반응형

댓글