Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,8 +1,9 @@
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
3 |
import logging
|
4 |
-
from datetime import datetime
|
5 |
from io import BytesIO
|
|
|
|
|
6 |
|
7 |
# 로그 설정
|
8 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
@@ -39,6 +40,8 @@ def analyze_reviews(file):
|
|
39 |
|
40 |
# 새로운 시트에 데이터 작성
|
41 |
logging.info("새로운 시트 생성 및 데이터 작성 시작")
|
|
|
|
|
42 |
with pd.ExcelWriter(file_bytes, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
|
43 |
review_counts.to_excel(writer, sheet_name='월별 리뷰건수', index=False, columns=['년월', '리뷰건수'])
|
44 |
logging.info("새로운 시트에 데이터 작성 완료")
|
@@ -56,8 +59,13 @@ def analyze_reviews(file):
|
|
56 |
output.seek(0)
|
57 |
logging.info("결과 파일 저장 완료")
|
58 |
|
59 |
-
#
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
61 |
except Exception as e:
|
62 |
logging.error(f"분석 과정 중 오류: {e}")
|
63 |
return f"분석 과정에서 오류가 발생했습니다: {e}"
|
@@ -70,7 +78,7 @@ with gr.Blocks() as demo:
|
|
70 |
file_input = gr.File(label="원본 엑셀 파일 업로드", type="binary")
|
71 |
|
72 |
analyze_button = gr.Button("분석")
|
73 |
-
output_download = gr.File(label="분석된 엑셀 파일 다운로드", type="
|
74 |
|
75 |
analyze_button.click(fn=analyze_reviews, inputs=file_input, outputs=output_download)
|
76 |
|
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
3 |
import logging
|
|
|
4 |
from io import BytesIO
|
5 |
+
import tempfile
|
6 |
+
import os
|
7 |
|
8 |
# 로그 설정
|
9 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
|
40 |
|
41 |
# 새로운 시트에 데이터 작성
|
42 |
logging.info("새로운 시트 생성 및 데이터 작성 시작")
|
43 |
+
# 기존 시트를 유지하면서 새로운 시트를 추가하기 위해 전체 시트를 읽고 다시 씁니다
|
44 |
+
file_bytes.seek(0)
|
45 |
with pd.ExcelWriter(file_bytes, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
|
46 |
review_counts.to_excel(writer, sheet_name='월별 리뷰건수', index=False, columns=['년월', '리뷰건수'])
|
47 |
logging.info("새로운 시트에 데이터 작성 완료")
|
|
|
59 |
output.seek(0)
|
60 |
logging.info("결과 파일 저장 완료")
|
61 |
|
62 |
+
# 임시 파일 생성
|
63 |
+
with tempfile.NamedTemporaryFile(delete=False, suffix=".xlsx", prefix="분석된_리뷰_") as tmp_file:
|
64 |
+
tmp_file.write(output.getvalue())
|
65 |
+
temp_file_path = tmp_file.name
|
66 |
+
|
67 |
+
logging.info(f"임시 파일 생성 완료: {temp_file_path}")
|
68 |
+
return temp_file_path # 파일 경로 반환
|
69 |
except Exception as e:
|
70 |
logging.error(f"분석 과정 중 오류: {e}")
|
71 |
return f"분석 과정에서 오류가 발생했습니다: {e}"
|
|
|
78 |
file_input = gr.File(label="원본 엑셀 파일 업로드", type="binary")
|
79 |
|
80 |
analyze_button = gr.Button("분석")
|
81 |
+
output_download = gr.File(label="분석된 엑셀 파일 다운로드", type="filepath") # type을 'filepath'로 설정
|
82 |
|
83 |
analyze_button.click(fn=analyze_reviews, inputs=file_input, outputs=output_download)
|
84 |
|