FictionAgent / tools /clear_cache.py
gdwind's picture
Upload folder using huggingface_hub
a226682 verified
"""清理缓存工具"""
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from utils import CacheManager
from config import Config
def clear_cache(pattern=None, confirm=True):
"""清理缓存
Args:
pattern: 匹配模式,None表示清理所有
confirm: 是否需要确认
"""
cache = CacheManager()
info = cache.get_cache_info()
print("="*70)
print("🗑️ 缓存清理工具")
print("="*70)
print(f"\n当前缓存状态:")
print(f" 文件数量: {info['count']}")
print(f" 占用空间: {info['size_mb']} MB")
print(f" 缓存目录: {Config.CACHE_DIR}")
if info['count'] == 0:
print("\n✓ 缓存为空,无需清理")
return
if pattern:
print(f"\n将清理匹配 '{pattern}' 的缓存")
else:
print(f"\n⚠️ 将清理所有缓存文件")
if confirm:
response = input("\n确认清理?(y/n): ").strip().lower()
if response not in ['y', 'yes', '是']:
print("已取消")
return
print("\n清理中...")
cache.clear(pattern)
# 显示清理后状态
new_info = cache.get_cache_info()
print(f"\n✓ 清理完成")
print(f" 剩余文件: {new_info['count']}")
print(f" 释放空间: {info['size_mb'] - new_info['size_mb']:.2f} MB")
def main():
import argparse
parser = argparse.ArgumentParser(description="清理缓存")
parser.add_argument("-p", "--pattern", help="匹配模式")
parser.add_argument("-y", "--yes", action="store_true",
help="不询问直接清理")
args = parser.parse_args()
clear_cache(args.pattern, not args.yes)
if __name__ == "__main__":
main()