diff --git a/SubMind.py b/SubMind.py index f5e38ad..de2ccaa 100644 --- a/SubMind.py +++ b/SubMind.py @@ -4,6 +4,7 @@ import requests import datetime import dateparser import logging +import tempfile import pandas as pd import matplotlib import matplotlib.pyplot as plt @@ -458,7 +459,8 @@ async def stats(update: Update, context: CallbackContext): ax.axis('equal') fig.tight_layout() - image_path = f'stats_{user_id}.png' + with tempfile.NamedTemporaryFile(prefix=f'stats_{user_id}_', suffix='.png', delete=False) as tmp: + image_path = tmp.name plt.savefig(image_path) plt.close(fig) @@ -481,7 +483,9 @@ async def export_command(update: Update, context: CallbackContext): await update.message.reply_text("您还没有任何订阅数据,无法导出。") return - export_path = f'export_{user_id}.csv' + with tempfile.NamedTemporaryFile(prefix=f'export_{user_id}_', suffix='.csv', delete=False) as tmp: + export_path = tmp.name + df.to_csv(export_path, index=False, encoding='utf-8-sig') try: @@ -506,7 +510,8 @@ async def import_upload_received(update: Update, context: CallbackContext): return IMPORT_UPLOAD file = await update.message.document.get_file() - file_path = f'import_{user_id}.csv' + with tempfile.NamedTemporaryFile(prefix=f'import_{user_id}_', suffix='.csv', delete=False) as tmp: + file_path = tmp.name try: await file.download_to_drive(file_path) df = pd.read_csv(file_path, encoding='utf-8-sig')