스트림릿과 파일업로드에 필요한 import 해줍니다.
import streamlit as st
from PIL import Image
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('여러파일을 업로드 하는 앱')
#사이드바용 메뉴
menu = ['Image','CSV']
choice = st.sidebar.selectbox('메뉴',menu)
if choice == 'Image' :
uploaded_files = st.file_uploader('이미지파일 업로드',type=['png','jpg','jpeg'],accept_multiple_files=True)
if uploaded_files is not None:
for file in uploaded_files:
save_uploaded_file('temp_files',file)
img = Image.open(file)
st.image(img)
## CSV 파일명은 시간.csv 의 조합된 파일명으로 저장
elif choice == 'CSV':
uploaded_files = st.file_uploader('CSV파일 업로드',type=['csv'],accept_multiple_files=True)
if uploaded_files is not None:
for file in uploaded_files:
current_time = datetime.now()
current_time=current_time.isoformat().replace(':','_')
file.name = current_time +'.csv' #파일이름 변경
save_uploaded_file('temp_csv',file)
if __name__ == '__main__':
main()
'Streamlit' 카테고리의 다른 글
python(파이썬)의 streamlit(스트림릿)에서 다양한 데이터 차트 그리기 1 (0) | 2022.01.10 |
---|---|
python(파이썬)의 streamlit(스트림릿)에서 클래스를 이용해 py파일 분리하기 (0) | 2022.01.10 |
python(파이썬)의 streamlit(스트림릿)에서 파일 업로드 하기 (0) | 2022.01.10 |
python(파이썬)의 streamlit(스트림릿) 인터넷창 이름과 아이콘 변경 (0) | 2022.01.04 |
python(파이썬)의 streamlit(스트림릿) 다양한 input 함수들 (0) | 2022.01.04 |