์ ํ ์ ์ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๋ ๋ก์ง์ ๋ํด์
๋ฅ๋ฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฐ์๋ ์ฝ๋์ ๋ํด์ ์กฐ์ฌํด๋ณด์๋ค.
default_storage
default_storage๋ Django์์ file manage๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
FileSystemStorage ํด๋์ค๋ ๋ก์ปฌ ํ์ผ ์์คํ
์์ ๊ธฐ๋ณธ ํ์ผ ์คํ ๋ฆฌ์ง๋ฅผ ๊ตฌํํ๋ค. ๋ณ๋์ ์ธ์๊ฐ ์์ด ์์ฑํ๋ค๋ฉด
ํ์ผ์ ์ ์ฅํ ๋๋ ํ ๋ฆฌ์ Root ๊ฒฝ๋ก๋ settings.py์ MEDIA_ROOT ๊ฐ์ด๋ฉฐ, ์ ์ฅ๋ ํ์ผ์ servingํ๋ URL ๋ํ
settings.py์ MEDIA_URL ๊ฐ์ด๋ค.
default_storage์ ์ฃผ์ ๋ฉ์๋
from django.core.files.storage import default_storage
file = request.FILES['file']
# ์ง์ ๋ ๊ฒฝ๋ก์ ํ์ผ ์ ์ฅ
path = default_storage.save('path/to/file', file)
print(path) # 'path/to/file'
# ํ์ผ ์ ์ฒด ํฌ๊ธฐ(byte)
default_storage.size(path) # 11
# ์ง์ ๋ ํ์ผ ์ด๊ธฐ
default_storage.open(path).read()
# ์ง์ ๋ ํ์ผ ์ญ์
default_storage.delete(path)
# ์ง์ ๋ ํ์ผ ์กด์ฌ ์ฌ๋ถ
default_storage.exists(path) # False
[ํ๋ก์ ํธ ์ ์ฉ]
# ์ด๋ฏธ์ง ์
๋ก๋๋ฅผ ์ํ ์์ ํด๋ ์์ฑ : style_transfer/input
default_storage.save('style_transfer/input/input_img.jpg', ContentFile(file.read()))
[์ถ์ฒ] : https://chagokx2.tistory.com/62
shutil.rmtree()
ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ ์ญ์ ํ๊ธฐ
shutil ๋ชจ๋์๋ ํ์ผ์ ์ญ์ ํ๋ ๊ธฐ๋ฅ์ด ํฌํจ๋ผ ์์ง ์์ ๋ฏํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํ๋ ํจ์์ธ rmtree()๋ ๋ถ๋ช
ํฌํจ๋ผ ์์ต๋๋ค. ์ญ์ ๋ ๋๋๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ ์ญ์ ๋ ๋๋ ํฐ๋ฆฌ๋ฅผ ํด์งํต์์ ์ฐพ์ ์ ์์ ํ
๋ ์ฃผ์ํ์ธ์.
๋ค์ ์์ ๋ Original-Copy ๋๋ ํฐ๋ฆฌ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
import shutil
shutil.rmtree('Original-Copy')
[ํ๋ก์ ํธ ์ ์ฉ]
shutil.rmtree('style_transfer/input/')
[์ถ์ฒ] : https://code.tutsplus.com/ko/tutorials/file-and-directory-operations-using-python--cms-25817
glob ๋ชจ๋์ glob ํจ์ ์ฌ์ฉ๋ฒ
ํน์ ํ ํจํด์ด๋ ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ๋ค์ ๊ฒฝ๋ก๋ ์ด๋ฆ์ด ํ์ํ ๋๊ฐ ์๋ค.
glob ๋ชจ๋์ glob ํจ์๋ ์ฌ์ฉ์๊ฐ ์ ์ํ ์กฐ๊ฑด์ ๋ง๋ ํ์ผ๋ช
์ ๋ฆฌ์คํธ ํ์์ผ๋ก ๋ฐํํ๋ค.
๋จ, ์กฐ๊ฑด์ ์ ๊ท์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์์
๋ฑ์์๋ ์ฌ์ฉํ ์ ์๋ '*'์ '?'๊ฐ์ ์์ผ๋์นด๋๋ง์ ์ง์ํ๋ค.
[ํ๋ก์ ํธ ์ ์ฉ]
list_of_files = glob.glob('style_transfer/output/*') # * means all if need specific format then *.csv
[์ถ์ฒ] : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=siniphia&logNo=221397012627