๐ฆ ๋ด์ผ๋ฐฐ์์บ ํ/TIL(Today I Learned) TIL_220703_ํ ํ๋ก์ ํธ - ์ ํ ์ ์ ํ๋ก์ ํธ์์ ์ฌ์ฉ๋๋ ๋ก์ง์ ๋ํด์ ๋ฅ๋ฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด ์ฐ์๋ ์ฝ๋์ ๋ํด์ ์กฐ์ฌํด๋ณด์๋ค. 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 [Django Basic 13] default_storage default_storage default_storage ๋ Django์์ file manage๋ฅผ ์ฝ๊ฒ ํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. Django์ ๊ธฐ๋ณธ ํ์ผ ์ ์ฅ์๋ settings.py ์ DEFAULT_FILE_STORAGE ์ค์ ์ ์ํด ์ ๊ณต๋๋ค. ํด๋น ์ค์ ํญ๋ชฉ์ defau.. chagokx2.tistory.com 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 ํ์ด์ฌ์ ์ด์ฉํ ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ ์์ ์ด์ ํํ ๋ฆฌ์ผ์์๋ ํ์ผ์ ์ฝ๊ณ , ์ด๊ณ , ๋ซ๊ณ , ์ฐ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํ์ต๋๋ค. ์ด๋ฒ ํํ ๋ฆฌ์ผ์์๋ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ(ํด๋)์์ ์ํํ ์ ์๋ ๋ค์ํ ์์ ์ ๋ํด ์ข ๋ ์์๋ณด๊ฒ ์ต๋๋ค. ์ฌ code.tutsplus.com 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 [Python] glob.glob() ์ฌ์ฉ๋ฒ 1. ๊ฐ์ ๋ง์ ํ์ผ๋ค์ ๋ค๋ค์ผ ํ๋ ํ์ด์ฌ ํ๋ก๊ทธ๋จ์ ์์ฑํ ๋, ํน์ ํ ํจํด์ด๋ ํ์ฅ์๋ฅผ ๊ฐ์ง ํ์ผ๋ค... blog.naver.com ๊ณต์ ํ๊ธฐ URL ๋ณต์ฌ์นด์นด์คํก ๊ณต์ ํ์ด์ค๋ถ ๊ณต์ ์์ค ๊ณต์ ๊ฒ์๊ธ ๊ด๋ฆฌ ๊ตฌ๋ ํ๊ธฐMOVEMENT.DEV Contents ์ ํ์ ์ํ๋ก์ ํธ์์์ฌ์ฉ๋๋๋ก์ง์๋ํด์ default_storage shutil.rmtree() glob๋ชจ๋์globํจ์ ์ฌ์ฉ๋ฒ ๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ TIL_ 2023.01.02 TIL_220706_ํ ํ๋ก์ ํธ KPT 2023.01.01 TIL_220627_์ ํ ์ ์ ํ๋ก์ ํธ SA 2023.01.01 TIL_220630_rest_framework_simplejwt 2023.01.01 ๋๊ธ 0 + ์ด์ ๋๊ธ ๋๋ณด๊ธฐ