FileSplitter 是一个基于 Python 和 Tkinter 的跨平台 GUI 应用程序,专门用于高效处理大型文本文件的分割操作。该工具能够将超大文本文件按指定字符数分割成多个小文件,支持多种编码格式,并提供直观的进度显示和操作日志功能。特别适合处理日志文件、数据集、文档等需要分块处理的场景。
- 支持五种分割模式:
- 按字符分割:严格按字符数切割,可能拆分单行
- 按行分割:按指定的行数分割
- 严格行分割:如果当前行加入会导致超过字符数限制,放弃当前行,保持行完整性,同时不会超过字符限制
- 灵活行分割:如果当前行加入会导致超过字符数限制,保留当前行,保持行完整性,同时将会超过字符限制
- 份数分割:按输入份数自动计算字符数分割
- 按正则分割:按用户输入的正则表达式处理分割
- 多线程处理机制,防止大文件分割时界面卡死
- 自动检测输入文件编码
- 支持多种常见编码格式:
- UTF-8, GBK, GB2312, Big5, Latin1 等
- 输出编码独立设置:
- 与输入编码相同
- 自定义指定编码
- 直观的文件/目录选择器
- 实时进度条显示处理进度
- 详细操作日志记录
- 自定义字体设置(支持加粗/斜体)
- 一键打开输出目录功能
- 自动保存用户设置到配置文件
- 跨平台配置存储:
- Windows:
%APPDATA%\FileSplitter\settings.ini - macOS:
~/Library/Preferences/FileSplitter/settings.ini - Linux:
~/.config/FileSplitter/settings.ini
- Windows:
FileSplitter/
├── main.py # 程序入口
├── gui/ # 图形界面模块
│ ├── main_window.py # 主窗口逻辑
│ ├── font_settings.py # 字体设置对话框
│ ├── widgets.py # 自定义UI组件
│ └── styles.py # 样式管理器
└── core/ # 核心功能模块
├── splitter.py # 文件分割算法
├── file_utils.py # 文件处理工具
├── config_manager.py # 配置管理器
└── utils.py # 系统工具函数
1.chardet
-
用于自动检测文件编码
-
安装
pip install chardet
2.tkinterdnd2
- 用于检测拖拽文件
- 安装
pip install tkinterdnd2
- 使用 Nuitka 打包
- 安装
nuitka库:pip install nuitka - 启动 Nuitka.bat
- 安装
- 使用 PyInstaller 打包
- 安装
pyinstaller库:pip install pyinstaller - 启动 pyinstaller.bat
- 安装
-
选择输入文件和输出目录(或者拖拽文件和目录)
- 点击"输入文件"旁的"浏览..."按钮选择要分割的文件
- 点击"输出目录"旁的"浏览..."按钮选择保存分割文件的目录
-
设置分割参数
- 在"分割方式"下拉框选择模式
- 按照分割方式填写分割文件的字符数/行数/份数/正则表达式
- 在"编码设置"区域配置:
- 输入编码:自动检测(
auto)或手动指定 - 输出编码:同输入编码/指定编码
- 输入编码:自动检测(
-
执行分割操作
- 点击"开始分割"按钮启动处理
- 实时查看进度条和状态提示
- 在日志区域监控详细处理过程
-
查看结果
- 分割完成后弹出成功提示框
- 点击"打开输出目录"按钮直接访问分割后的文件
- 文件命名格式:
原文件名_part1.txt,原文件名_part2.txt...