它不仅能够检测每个txt文件的编码格式,还能依据用户选择的不同规则,从文件内容中提取部分内容作为新文件名,去除新文件名中的特殊字符,若新文件名已存在则添加序号确保唯一性,最后完成文件的重命名操作。操作完成后,用户可选择是否继续对其他文件夹执行相同操作。
用户使用该工具时,程序首先会打印作者相关信息,包括定制小工具的微信联系方式以及定制费用说明。之后,用户按以下步骤操作:
- 输入文件夹路径:在“请输入存放txt的文件夹路径: ”的提示后,用户需准确输入包含待处理txt文件的文件夹路径。
- 选择文件名确定方式:程序提示用户选择文件名确定方式:
- 选择1:根据输入的某个字符前的内容确定文件名。用户选择此项后,需输入要用作文件名的分隔字符。
- 选择2:根据输入字符出现的第N个位置前的内容确定文件名。用户选择此项后,需输入要用作文件名的分隔字符以及要获取的第一个符号位置。
- 选择3:根据输入的两个字符间的内容确定文件名。用户选择此项后,需依次输入第一个分隔字符、第二个分隔字符、要获取的第一个字符位置(出现的第几个)以及要获取的第二个字符位置(出现的第几个)。
- 执行文件处理操作:
- 检测文件编码:通过
detect_encoding函数以二进制模式打开文件,读取内容并利用chardet.detect方法获取文件的编码格式。 - 处理txt文件:在
process_txt_files函数中,程序遍历指定文件夹内所有txt文件。先检测文件编码并打印“处理文件: [文件名],编码: [编码格式]”。然后根据用户选择的方式从文件内容中提取新文件名。- 若选择1,查找文件内容中指定分隔字符的位置,若找到则提取其前的内容作为新文件名并去除前后空格;若未找到,则直接将文件内容去除前后空格作为新文件名。
- 若选择2,通过
find_nth_occurrence函数找到指定分隔字符第N次出现的位置,若找到则提取其前的内容作为新文件名并去除前后空格;若未找到,则直接将文件内容去除前后空格作为新文件名。 - 若选择3,同样使用
find_nth_occurrence函数分别找到两个指定分隔字符在指定位置出现的位置,若都找到,则提取两个位置间的内容作为新文件名并去除前后空格;若有一个未找到,则直接将文件内容去除前后空格作为新文件名。
- 重命名文件:去除新文件名中的特殊字符(如
/、\、:、*、?、"、<、>、|)。构建新的文件路径,若新文件路径已存在,在新文件名后添加序号(从1开始递增)直至找到不存在的文件名。最后使用os.rename函数将原文件重命名为新文件名,并打印“文件处理完成: [新文件路径]”。
- 检测文件编码:通过
- 操作结果反馈:当指定文件夹内所有txt文件都处理完毕后,程序完成本次操作。
- 询问是否继续:完成一次文件处理操作后,程序询问“是否要继续运行程序?(y/n): ”。若用户输入“y”(不区分大小写),则会重新提示用户输入文件夹路径并选择文件名确定方式,开始新一轮的文件处理操作;若输入其他内容,程序结束运行。
例如,假设存在如下文件夹结构:
主文件夹
│
├── 文件夹 A
│ ├── file1.txt(内容为 “abc,def,ghi”)
│ ├── file2.txt(内容为 “123-456-789”)
│ └── file3.txt(内容为 “x:y;z”)
└── 文件夹 B
若用户选择1,输入分隔字符为 ,,处理“file1.txt”时,会提取“abc”作为新文件名,去除特殊字符后重命名为“abc.txt”(若不存在同名文件)。若选择2,输入分隔字符为 -,第一个符号位置为 2,处理“file2.txt”时,会提取“123 - 456”作为新文件名,去除特殊字符后重命名为“123456.txt”(若不存在同名文件)。若选择3,输入第一个分隔字符为 :,第二个分隔字符为 ;,第一个字符位置为 1,第二个字符位置为 1,处理“file3.txt”时,会提取“y”作为新文件名,去除特殊字符后重命名为“y.txt”(若不存在同名文件)。操作完成后输出提示信息,并询问用户是否继续运行程序。若选择“y”,可重新输入路径并选择方式进行新一轮操作;若选择其他内容,程序结束。
python版本:3.86
是否带UI界面:非UI版本
电脑系统版本:win10 64位 专业版系统(这是测试环境,其他环境也可以32位操作系统可能需要调整代码,让AI去转换即可)
脚本使用到的库:使用pycharm编辑器,如果没有安装相关库,会自动标红提示,鼠标放到标红的地方会弹出安装库按钮
重要提示:这是源代码,需要安装python使用,也可以自行修改部分代码实现想要的功能
查看源代码
- 随机文章
- 热门文章
- 752-批量复制文件及文件夹到多个文件夹
- 757-读取txt每行文件名移动指定文件到指定文件夹
- 763-批量删除整理多层文件夹冗余
- 768-以文件中关键词创建文件夹并把包含该关键词的文件移动到该文件夹
- 10082-1-批量解压压缩包-【支持子文件夹穿透】【不支持密码解压-多层嵌套压缩包解压】
- 10084-批量解压7z分卷-【支持带密码的分卷-子文件夹穿透】【不支持多层嵌套分卷】
- 111-实现批量将MP4等视频文件批量转码成MP3文件并保存到原文件夹下
- 10046-0-批量为视频添加文字水印自动匹配视频时长-文字-高度-底色自定义
- 601-批量对指定文件夹下各子文件夹下docx格式word文档进行合并
- 10037-1-批量分割图片可指定横竖各切多少或不切或同时切




还没有评论,来说两句吧...