# 智能文件管家 **Repository Path**: deepin20/FileWise ## Basic Information - **Project Name**: 智能文件管家 - **Description**: 智能文件管家 (FileWise)是一款面向桌面和服务器环境的文件管理工具,通过自定义规则对文件进行自动分类、智能整理和批量导出。无论是个人文档整理,还是企业级文件归档,FileWise 都能提供高效、可扩展的解决方案。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-15 - **Last Updated**: 2026-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 智能文件管家 (FileWise) > 基于规则的文件智能分类、整理与自动化管理工具 [![Python Version](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/) [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey)]() --- ## 📖 简介 **智能文件管家 (FileWise)** 是一款面向桌面和服务器环境的文件管理工具,通过自定义规则对文件进行**自动分类**、**智能整理**和**批量导出**。无论是个人文档整理,还是企业级文件归档,FileWise 都能提供高效、可扩展的解决方案。 主要应用场景: - 办公文档自动归类(合同、报表、邮件等) - 项目文件按类别归档 - 日志文件定期分类存储 - 多媒体文件自动整理 - 监控文件夹,新文件自动分类归档 --- ## ✨ 主要特性 ### 📂 文件扫描与分类 - 支持单源和多源文件夹扫描(每个源独立配置子文件夹、扩展名过滤) - 递归或非递归扫描 - 后台线程执行,进度实时反馈 - 基于关键词、正则表达式、文件内容匹配 - 多字段匹配(文件名、路径、扩展名、无扩展名文件名、文件内容) - 支持 OR / AND 复合逻辑,支持排除词 - 内置 10+ 大类规则(安全生产、应急、交通、医疗等) - 权重机制,高权重规则优先匹配 ### 🧠 智能规则管理 - 可视化规则编辑器(添加/删除/重命名大类、小类) - 支持规则导入/导出(JSON 格式,覆盖或合并) - 自动分类建议(基于文件名聚类,需 scikit-learn) - 用户反馈学习(根据手动调整自动优化权重) - 规则推荐模板(按文件夹类型推荐图片/文档/代码模板) ### 📤 多格式导出 - **简单列表**:TXT、CSV、XLSX - **分类报告**:Excel(多 Sheet)、JSON、树形文本、Markdown、HTML、SQLite - **统计图表**:PNG(柱状图+饼图,需 matplotlib) - **打包归档**:ZIP(按分类结构打包文件) - **邮件发送**:SMTP 发送 CSV 报告 ### 🔧 文件整理操作 - 复制/移动文件到分类目录 - 重命名文件(支持占位符 `{major}`, `{minor}`, `{filename}`) - 删除空文件夹(整理后清理) - **Dry Run** 模拟执行,预览操作 - 撤销上一次操作(基于操作日志) ### ⏰ 自动化与监控 - **文件监控**(watchdog)实时监控文件夹变化,新文件自动分类处理 - **定时任务**(cron 表达式)定期执行扫描导出 - **批量处理**:多源任务并行或顺序执行,结果合并导出 - **命令行版本**(CLI)用于脚本集成 ### 🌐 界面与体验 - 统信 UOS 美化版 GUI(也兼容其他 Linux 桌面、Windows、macOS) - 深色/浅色主题切换 - 实时分类预览(扫描过程中动态显示分类树) - 自定义显示列(文件名、大小、修改时间、哈希) - 国际化支持(中文、英文,可扩展) - 快捷键操作(Ctrl+B/G/R/O/E/T/H 等) - 窗口尺寸/位置记忆 ### 📊 日志与调试 - 详细操作日志(文件 `logs/app.log`) - GUI 菜单一键查看日志 --- ## 🚀 快速开始 ### 环境要求 - Python 3.6 或更高版本 - 支持的操作系统:Linux (Ubuntu/Debian/统信UOS), macOS, Windows ### 安装依赖 ```bash # 克隆或下载项目 git clone https://github.com/your-repo/filewise.git cd filewise # 安装核心依赖 pip install -r requirements.txt # 可选依赖(根据需要安装) pip install watchdog # 文件监控 pip install scikit-learn # 自动分类建议 pip install croniter # 定时任务 pip install matplotlib # 统计图导出 pip install pypdf python-docx odfpy # 文件内容匹配(PDF/Word/ODT) ``` ### 运行 GUI ```bash python main.py ``` ### 运行 CLI ```bash python cli.py -s /path/to/source -o report.xlsx -m classified -r # 更多用法见 `python cli.py --help` ``` --- ## 📚 使用说明 ### 基本操作流程 1. **选择源文件夹**:在 GUI 顶部的输入框选择或拖拽要处理的文件夹。 2. **配置选项**: - 选择“简单列表”或“文件名内容分类”模式。 - 设置是否递归子文件夹、扩展名过滤、输出格式。 3. **编辑规则**(分类模式): - 点击“编辑分类规则”打开规则编辑器。 - 可添加/删除大类、小类,为每个小类设置关键词、排除词、匹配模式、匹配字段、权重。 4. **生成并保存**:点击按钮,扫描文件并弹出保存对话框。 5. **整理文件**(分类模式): - 点击“执行整理”,选择操作类型(复制/移动/重命名),设置目标根目录或重命名规则。 - 可启用 Dry Run 预览,确认后执行。 ### 高级功能 - **多源管理**:在“源文件夹列表”区域添加多个源,每个源独立设置子文件夹和过滤条件,可并行扫描。 - **文件监控**:在“文件监控”区域配置要监控的文件夹,设置操作类型(复制/移动/重命名),启动后新文件自动分类。 - **定时任务**:在菜单“文件”->“定时任务”中添加 cron 表达式,设置任务参数,定时自动扫描导出。 - **规则导入/导出**:在“工具”菜单中导入/导出规则 JSON 文件,便于分享或备份。 --- ## ⚙️ 配置文件 所有配置文件位于 `config/` 目录: - `classify_rules.json`:用户自定义分类规则 - `file_list_config.json`:最后打开的文件夹路径 用户偏好存储在 `preferences.json`(窗口尺寸、主题、语言等)。 --- ## 🛠️ 开发与贡献 ### 项目结构 ``` filewise/ ├── core/ # 核心功能(收集、整理、监控、调度、规则编辑等) ├── export/ # 导出模块 ├── gui/ # GUI 相关(主窗口、处理器、对话框、工具) ├── utils/ # 通用工具(配置、分类引擎、日志) ├── config/ # 运行时配置文件 ├── resources/ # 资源文件(图标、桌面文件) ├── locale/ # 国际化翻译文件 ├── logs/ # 日志目录 ├── main.py # GUI 入口 ├── cli.py # CLI 入口 └── requirements.txt # 依赖清单 ``` ### 贡献指南 1. Fork 本项目。 2. 创建功能分支 (`git checkout -b feature/amazing-feature`)。 3. 提交变更 (`git commit -m 'Add some amazing feature'`)。 4. 推送分支 (`git push origin feature/amazing-feature`)。 5. 开启 Pull Request。 ### 添加新规则 通过 GUI 规则编辑器即可完成,无需编码。 ### 添加新导出格式 在 `export/export_extended.py` 中添加新函数,并在 `gui/gui_handlers_export.py` 的 `_finish_ui` 中注册该格式。 --- ## ❓ 常见问题 ### Q: 扫描时提示“没有符合条件的文件”? A: 检查扩展名过滤设置,确保源文件夹下有匹配扩展名的文件。 ### Q: 文件监控不工作? A: 确保已安装 `watchdog` 库,并在“配置监控”中正确填写监控文件夹。 ### Q: 如何重置所有设置为默认值? A: 在菜单“文件”->“重置默认设置”中一键重置。 ### Q: 日志文件在哪里? A: `logs/app.log`,可通过菜单“帮助”->“查看日志”快速打开。 ### Q: 内容匹配需要哪些额外依赖? A: 需安装对应文档解析库(pypdf, python-docx, odfpy 等),详见安装说明。 --- ## 📄 许可证 本项目采用 MIT 许可证,详情见 [LICENSE](LICENSE) 文件。 --- ## 🙏 致谢 - 感谢所有开源社区提供的优秀库(pandas, openpyxl, watchdog, scikit-learn, croniter, matplotlib 等)。 - 感谢统信 UOS 生态提供的桌面环境优化指南。 --- **智能文件管家 (FileWise)** —— 让文件管理更智慧、更高效。