Kims12 commited on
Commit
ec888be
·
verified ·
1 Parent(s): 4a9aba4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -4
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
- # BytesIO 데이터를 바이트로 변환하고 반환
60
- return output.getvalue()
 
 
 
 
 
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="binary") # type을 'binary'로 설정
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