반응형
import streamlit as st from PIL import Image import pandas as pd import os from datetime import datetime |
- 디렉토리 정보와 파일을 알려주면, 해당 디렉토리에 파일을 저장하는 함수
def save_uploaded_file(directory, file) : # 1.디렉토리가 있는지 확인하여, 없으면 디렉토리부터만든다. if not os.path.exists(directory) : os.makedirs(directory) # 2. 디렉토리가 있으니, 파일을 저장. with open(os.path.join(directory, file.name), 'wb') as f : f.write(file.getbuffer()) return st.success("Saved file : {} in {}".format(file.name, directory)) |
def main(): st.title('파일 업로드 프로젝트') |
사이드바 만들기: st.sidebar.seletcbox()
menu = ['Image','CSV','About'] choice = st.sidebar.selectbox('메뉴',menu) |
이미지 파일 업로드: st.file_uploader(‘문구’, type=['jpg','png','jpeg'])
ㄴ 해당 타입 세개만 올릴 수 있도록 설정
ㄴ 파일을 처리하려면 변수로 받아줘야한다.
if choice == menu[0]: st.subheader('이미지 파일 업로드') upload_file = st.file_uploader('이미지 파일 선택',type=['jpg','png','jpeg']) |
- 업로드 파일의 파일명 변경해서 저장하기
# 파일명을 유니크하게 만들어서 저장해야 한다.
# 현재시간을 활용해서, 파일명을 만든다.
# 파일명에 콜론(:)이 들어가면 에러가 난다.
# 나는 지금 currentime을 파일명으로 만들고 싶다.
# 콜론을 언더스코어로 바꾸자
if upload_file is not None : # 업로드 파일이 있으면 print(upload_file.name) print(upload_file.size) print(upload_file.type) current_time = datetime.now() print(current_time) print(current_time.isoformat().replace(':','_')) new_filename = current_time.isoformat().replace(':','_')+ '.jpg' upload_file.name = new_filename save_uploaded_file('temp',upload_file) |
반응형