import os import shutil import zipfile def extract_acc_archive(base_drive: str = r"D:\\") -> str: # تغییر نام پوشه اصلی به NovinPardazOne base_dir = os.path.join(base_drive, "NovinPardazOne") soft_dir = os.path.join(base_dir, "NovinSoft") acc_dir = os.path.join(base_dir, "NovinAcc") target_zip_name = "NovinAcc.zip" source_zip_path = os.path.join(soft_dir, target_zip_name) target_zip_path = os.path.join(acc_dir, target_zip_name) # ۱. بررسی وجود پوشه NovinSoft if not os.path.exists(soft_dir): raise FileNotFoundError(f"[-] پوشه یافت نشد: {soft_dir}") # ۲. بررسی وجود فایل زیپ if not os.path.exists(source_zip_path): raise FileNotFoundError(f"[-] فایل {target_zip_name} در پوشه {soft_dir} پیدا نشد!") # ۳. ایجاد پوشه NovinAcc در صورت عدم وجود os.makedirs(acc_dir, exist_ok=True) # ۴. انتقال فایل زیپ به NovinAcc print(f"[+] در حال انتقال {target_zip_name} به پوشه NovinAcc...") shutil.move(source_zip_path, target_zip_path) print(" [✓] فایل زیپ منتقل شد.") # ۵. استخراج فایل از حالت فشرده print(f"[+] در حال آنزیپ کردن در {acc_dir}...") with zipfile.ZipFile(target_zip_path, 'r') as zip_ref: zip_ref.extractall(acc_dir) print(" [✓] تمام فایل‌ها با موفقیت آنزیپ شدند.") # ۶. حذف فایل زیپ موقت if os.path.exists(target_zip_path): os.remove(target_zip_path) print(" [✓] فایل زیپ موقت پاک شد.") return acc_dir if __name__ == "__main__": os.system("chcp 65001 > nul") print("--- در حال اجرای ماژول انتقال و آنزیپ ---") try: extract_acc_archive(base_drive=r"D:\\") except Exception as e: print(e)