왕현성
코딩발자취
왕현성
전체 방문자
오늘
어제
  • 코딩 (277)
    • Python (71)
    • Java (16)
    • MySQL (34)
    • 인공지능 (48)
      • 머신러닝 (16)
      • 딥러닝 (32)
    • 영상처리 (4)
    • Rest API (21)
    • Android Studio (25)
    • streamlit (13)
    • DevOps (22)
      • AWS (9)
      • PuTTY (5)
      • Git (4)
      • Serverless (2)
      • Docker (2)
    • IT 기술 용어 (6)
    • 디버깅 ( 오류 해결 과정 ) (17)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • TensorFlow
  • ckpt_file
  • 기상탐사
  • encoding='utf-8'
  • alibi-detection
  • maskimage
  • 영상처리역사
  • labelme UnocodeDecodeError
  • OpenCV
  • 비지도학습
  • yolov8
  • ComputerVision
  • 영상처리
  • PIL
  • pytorch
  • imageprocessing
  • matplotlib
  • 영상기술
  • alibidetect
  • tune()
  • 컴퓨터비전
  • numpy
  • unsupervised
  • pip install labelme
  • PYTHON
  • 의료이미징
  • get_long_description
  • UnboundLocalError
  • 딥러닝
  • labelme

최근 댓글

최근 글

티스토리

250x250
hELLO · Designed By 정상우.
왕현성

코딩발자취

Visual Studio Code : 웹 대시보드에 파일을 업로드하는 방법
streamlit

Visual Studio Code : 웹 대시보드에 파일을 업로드하는 방법

2022. 12. 13. 11:06
728x90

여러 파일을 업로드 하는 대시 보드를 만든 코드이다.


 uploaded_files = st.file_uploader('이미지파일 업로드',
                            type=['png','jpg','jpeg'],
                            accept_multiple_files=True)
 
 
 CSV 파일을 저장할 때 파일 저장과 함께 
현재 시간과 temp_csv + 파일이름 을  합쳐 사용한 함수이다. 
잘 지켜 볼것 
 
 
# 파일을 업로드 하는 방법

import streamlit as st
import pandas as pd 
import os 
from datetime import date, datetime
from PIL import Image

# 함수정의 
# 디렉토리(폴더)명과 파일을 알려주면,
# 해당 디렉토리에 파일을 저장해 주는 함수.
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())
    
    # 3. 파일 저장이 성공했으니, 화면에 성공했다고 보여주면서 리턴
    return st.success('{} 에 {} 파일이 저장되었습니다.'.format(directory, file.name))


def main():
    st.title('파일 업로드 프로젝트')

    menu = ['Image', 'CSV', 'About']

    choice = st.sidebar.selectbox('메뉴', menu )

    if choice == 'Image' :
        st.subheader('이미지 파일 업로드')

        file = st.file_uploader('이미지를 업로드 하세요', type=['jpg','jpeg','png'])

        if file is not None :
            # st.text(file.name)
            # st.text(file.size)
            # st.text(file.type)

            # 파일명을 일관성있게, 회사의 파일명 규칙대로 바꾼다.
            # 현재시간을 조합하여 파일명을 만들면, 
            # 유니크하게 파일명을 지을수 있다.

            current_time = datetime.now()
            print(current_time.isoformat().replace(':','_') )
            current_time = current_time.isoformat().replace(':','_')
            print( current_time + '.jpg' )

            file.name = current_time + '.jpg'

            # 바꾼파일명으로, 파일을 서버에 저장한다.
            save_uploaded_file('tmp', file)


            # 파일을 웹 화면에 나오게.
            img = Image.open(file)
            st.image(img)

    elif choice == 'CSV' :
        st.subheader('CSV 파일 업로드')

        file = st.file_uploader('CSV파일 업로드', type=['csv'])

        if file is not None :
            # 파일명을 유니크하게 만든다.
            current_time = datetime.now()
            current_time = current_time.isoformat().replace(':','_')
            file.name = current_time + '.csv'

            # 파일을 서버에 저장한다.
            save_uploaded_file('csv', file)

            # csv 파일은, 판다스로 읽어서 화면에 보여준다.
            df = pd.read_csv(file)
            st.dataframe( df )

    elif choice == 'About' :
        st.subheader('파일 업로드 프로젝트 입니다.')


if __name__=='__main__' :
    main()

'streamlit' 카테고리의 다른 글

Visual Studio Code : streamlit을 이용한 차트 그리기 (1)  (0) 2022.12.13
Visual Studio Code : 다른 파일에서 함수 가져와 사용하기  (0) 2022.12.13
Visual Studio Code : 웹 대시보드 유저한테 데이터를 입력받는 방법 input  (0) 2022.12.13
Visual Studio Code : 웹 대시보드에 이미지파일,동영상파일 넣는 방법  (0) 2022.12.12
Visual Studio Code : UI요소들을 처리하는 방법 / button,radio,checkbox,selectbox,multiselect,slider  (0) 2022.12.12
    'streamlit' 카테고리의 다른 글
    • Visual Studio Code : streamlit을 이용한 차트 그리기 (1)
    • Visual Studio Code : 다른 파일에서 함수 가져와 사용하기
    • Visual Studio Code : 웹 대시보드 유저한테 데이터를 입력받는 방법 input
    • Visual Studio Code : 웹 대시보드에 이미지파일,동영상파일 넣는 방법
    왕현성
    왕현성
    AI 머신비전 학습일지

    티스토리툴바