Code Note
폴더 내 파일 트리 & 서브 폴더 내 파일들을 하나의 폴더로 이동
Woomii
2023. 10. 30. 15:20
728x90
반응형
오늘은 윈도우 환경에서 나눔 글꼴을 설치하려다 불편함을 느껴서 찾아본 여러 폴더 안에 있는 파일들을 하나의 폴더로 합치는 파이썬 코드를 정리해 보았습니다.
https://hangeul.naver.com/font
이 사이트에서 나눔 글꼴을 설치하려다 보니 하나의 압축 파일에 윈도우용 폰트(ttf)와 맥용 폰트(otf)가 함께 있더라구요.
그리고 한번에 모든 파일을 설치하려면 각 폰트 별 폴더를 찾아가고, 폴더 안에서 ttf 폴더를 눌러야하는 불편함이 있었어요.
필요(불편?)은 발명의 어머니
그래서 방법을 찾아 보았습니다!
우선은 폴더 내 하위 폴더를 포함한 파일들 리스트를 보고, 각 폴더 내에서 ttf 확장자를 가진 파일들을 하나의 폴더로 이동하기 위한 스크립트는 다음과 같습니다.
#%% 1. 파일 트리 프린트
import os
def print_file_tree(root_dir):
for root, dirs, files in os.walk(root_dir):
level = root.replace(root_dir, '').count(os.sep)
indent = ' ' * (level)
print('{}{}/'.format(indent, os.path.basename(root)))
subindent = ' ' * (level + 1)
for file in files:
print('{}{}'.format(subindent, file))
#%%
root_directory = "D:/nanumfont/"
print_file_tree(root_directory)
#%% 2. 서브폴더 내 특정 확장자 파일 이동
import shutil
import os
def cut_and_paste_files(source_directory, destination_directory):
for root, dirs, files in os.walk(source_directory):
for file in files:
print(file)
source_file = os.path.join(root, file)
destination_file = os.path.join(destination_directory, file)
if file[-3:] =='ttf': ## 해당 파일의 확장자가 ttf에 해당할 경우만 이동
shutil.move(source_file, destination_file)
#%%
# Define source and destination directories
source_directory = "D:/nanumfont/"
destination_directory = "D:/nanumfont/"
# Call the function to cut and paste files
cut_and_paste_files(source_directory, destination_directory)
1. 파일 트리 프린트
먼저, 작업하고자 하는 폴더의 구조를 확인하기 위해 파일 트리를 출력해보았습니다.
폴더를 보면
2. 서브 폴더 내 특정 확장자 파일 이동
반응형