사진파일들을 보고 분류할 파일을 만들고, 사진 종류별로 만들어진 파일 안에 정리하는 프로그램을 만들기로 결정
cuties 파일을 만들어서
동물들 사진을 넣어줬다
** 프로그램 돌릴 때 한글 오류나길래 파일 이름 영어로 바꿔서 했음
'cat.jpg','twocat.jpg','dog1.jpg','fulldog.jpg','happydog.jpg' 이렇게
그다음에 구글코랩에서 하려고 파일 넣어줬다
내가 하려는거:
강아지, 고양이, 카피바라 파일 각각 만들기
파일명 보고
강아지 >> 강아지 파일로 옮기기
고양이 >> 고양이 파일로 옮기기
카피바라 >> 카피바라 파일로 옮기기
import fileinput
import os
import glob
import pathlib
import shutil
import fnmatch
os.getcwd()
>> '/content'
os.listdir(os.getcwd())
>> ['.config', 'drive', 'sample_data']
# 경로 설정
path = '/content/drive/MyDrive/Colab Notebooks/homework/cuties'
files = os.listdir(path)
files
>> ['카피바라바라바라.jpg', '근엄바라.jpg','cat.jpg','twocat.jpg','dog1.jpg','fulldog.jpg','happydog.jpg']
ani = []
for filename in files:
if '.jpg' in filename:
ani.append(filename)
# 분류해서 넣어줄 폴더 만들기
newfolder = ['고양이', '강아지', '카피바라']
newpath = []
newdir = []
for i in range(len(newfolder)):
newpath.append(os.path.join(path, newfolder[i]))
newdir.append(pathlib.Path(newpath[i]))
newdir[i].mkdir(parents = True, exist_ok=True)
# 만든 폴더에 각 사진파일들 넣어주기
print(os.getcwd())
for filename in files:
print(filename)
if fnmatch.fnmatch(filename, '*cat*.jpg'):
shutil.copy(path +'/' + filename, newpath[0] + '/'+ filename)
print(1)
elif fnmatch.fnmatch(filename, '*dog*.jpg'):
shutil.copy(path +'/' + filename, newpath[1] + '/'+ filename)
print(2)
else:
shutil.copy(path +'/' + filename, newpath[2] + '/'+ filename)
print(3)
>>
/content
카피바라바라바라.jpg
3
근엄바라.jpg
3
cat.jpg
1
twocat.jpg
1
dog1.jpg
2
fulldog.jpg
2
happydog.jpg
2
잘 된다!!
과제 소감:
처음 딱 만들고 나서 아무리 수정해보고 나갔다 다시 들어오고 온갖걸 다 해봐도 다 else문으로 빠져버려서 머리 아팠다. 같은반 고수님들이 도와주는데도 안돼서 답답하던 중에 선생님이 '파일이름 한글이라 안되는거 아니야?' 하고 가셔서 이름 변경 했더니 바로 됐다! 쏘 다행\^o^/