tstd / app.py
Stereo0001's picture
Update app.py
c26ace6 verified
import gradio as gr
import pandas as pd
import ppp as pp # 你的处理逻辑模块
import os
def process_csv(file):
try:
df = pd.read_csv(file.name)
if 'PMCID' in df.columns:
pmcid_list = df['PMCID'].dropna().astype(str).tolist()
pmcid_str = ','.join(pmcid_list)
zip_path = pp.main(pmcid_str) # 调用主逻辑并返回 zip 路径
if os.path.exists(zip_path):
return f"成功处理 {len(pmcid_list)} 个 PMCID。", zip_path
else:
return "处理完成,但未找到打包后的文件。", None
else:
return "CSV 文件中没有名为 'PMCID' 的列。", None
except Exception as e:
return f"处理文件时出错: {e}", None
gr.Interface(
fn=process_csv,
inputs=gr.File(label="上传 CSV 文件"),
outputs=[
gr.Textbox(label="处理结果"),
gr.File(label="下载 PDF ZIP")
],
title="PubMed PDF 下载器",
description="上传包含 PMCID 列的 CSV 文件,自动下载对应的 PubMed PDF,并打包为 ZIP 文件。"
).launch()