|
|
"""清理缓存工具""" |
|
|
|
|
|
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() |