当前位置: 首页 > news >正文

分别用Python和Go实现对文件夹及其子文件夹里的文件进行批量重命名

文章目录

  • 问题阐述
  • 上代码
  • 结果如何

问题阐述

最近在继续提高自己的go技术时,从网上一些平台获取到了一些学习资料,然后下载到本地后,文件的命名是真的像衣托答辩:

在这里插入图片描述

除了上述的文件,还有一mol多神奇的命名,害,由于资料是从小道途径获得的,咱就忍了。接下来就是要批量对这些文件改名的问题,我粗略算了下,有上千个的文件需要改。对于程序员来说,总不能挨个挨个文件重命名吧,于是我就写了两个脚本,一个python版本,一个go版本,均能批量对文件夹及其子文件夹里的文件进行批量重命名,去掉烦人的"信息",亲测体检较好。

上代码

下面附上两个版本的代码:

Python:

import os# 要处理的根文件夹路径
root_folder = '/path/to/your/root/folder'# 要去掉的字符串
string_to_remove = "【加微信.赠送精品IT课程】"# 遍历根文件夹及其子文件夹
for folder_path, _, file_names in os.walk(root_folder):for file_name in file_names:file_path = os.path.join(folder_path, file_name)# 检查文件名是否包含要去掉的字符串if string_to_remove in file_name:# 构建新的文件名,去掉特定字符串new_file_name = file_name.replace(string_to_remove, "")new_file_path = os.path.join(folder_path, new_file_name)# 重命名文件os.rename(file_path, new_file_path)print(f"重命名文件:{file_path} -> {new_file_path}")

Go:

package mainimport ("fmt""os""path/filepath""strings"
)func main() {// 要处理的根文件夹路径rootFolder := "/path/to/your/root/folder"// 要去掉的字符串stringToRemove := "【加微信.赠送精品IT课程】"// 遍历根文件夹及其子文件夹err := filepath.Walk(rootFolder, func(path string, info os.FileInfo, err error) error {if err != nil {return err}// 只处理文件if !info.IsDir() {// 检查文件名是否包含要去掉的字符串if strings.Contains(info.Name(), stringToRemove) {// 构建新的文件名,去掉特定字符串newFileName := strings.Replace(info.Name(), stringToRemove, "", -1)newFilePath := filepath.Join(filepath.Dir(path), newFileName)// 重命名文件err := os.Rename(path, newFilePath)if err != nil {fmt.Printf("重命名文件失败:%s -> %s, 错误:%v\n", path, newFilePath, err)} else {fmt.Printf("重命名文件成功:%s -> %s\n", path, newFilePath)}}}return nil})if err != nil {fmt.Printf("遍历文件夹时发生错误:%v\n", err)}
}

结果如何

附上一张代码运行结果图,可以看到重命名了many的文件:

在这里插入图片描述

通过上述操作,我的项目文件就完美了,命名也都正常了:

在这里插入图片描述

nice~

继续学习~

相关文章:

分别用Python和Go实现对文件夹及其子文件夹里的文件进行批量重命名

文章目录 问题阐述上代码结果如何 问题阐述 最近在继续提高自己的go技术时,从网上一些平台获取到了一些学习资料,然后下载到本地后,文件的命名是真的像衣托答辩: 除了上述的文件,还有一mol多神奇的命名,害…...

redis深度历险 千帆竞发 —— 分布式锁

分布式应用进行逻辑处理时经常会遇到并发问题。 比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个…...

C#根据中文首字母排序

第一种方式&#xff1a; 这种方式会受制于服务器的区域和语言设置。 1.首先添加一个排序类ChineseNameComparer public class ChineseNameComparer : IComparer<string> {public int Compare(string x, string y){if (x null || y null)return 0;var xFirstChar x.Su…...

仪表基础知识培训

压力传感器:E+H PMX5x/FMX5x 一、安装:安装注意事项: 1、水平安装时仪表的呼吸孔(1)需要向下安装,并远离污染物。 2、请勿用坚硬的物体擦拭或接触膜片。 3、请勿安装在水泵的入口和搅拌叶附近 二、供电、接线、信号、:二线制,仪表输出4-20mA 三、量程:设置最大最小量程…...

无涯教程-JavaScript - PI函数

描述 PI函数返回数字3.14159265358979,数学常数pi,精确到15位数字。 语法 PI ()争论 PI函数语法没有参数。 适用性 Excel 2007,Excel 2010,Excel 2013,Excel 2016 Example JavaScript 中的 PI函数 - 无涯教程网无涯教程网提供描述PI函数返回数字3.14159265358979,数学常…...

前端防抖和节流

前端防抖和节流 概述 防抖&#xff1a; 防止抖动&#xff0c;个人字面理解此处防的不是页面的抖动&#xff0c;而是用户手抖。为了防止用户快速且频繁的触发事件而导致多次执行事件函数&#xff0c;这样的场景有很多&#xff0c;比如监听滚动、鼠标移动事件onmousemove、频繁…...

[pai-diffusion]pai的easynlp的clip模型训练

EasyNLP带你玩转CLIP图文检索 - 知乎作者&#xff1a;熊兮、章捷、岑鸣、临在导读随着自媒体的不断发展&#xff0c;多种模态数据例如图像、文本、语音、视频等不断增长&#xff0c;创造了互联网上丰富多彩的世界。为了准确建模用户的多模态内容&#xff0c;跨模态检索是跨模态…...

期权如何交易?期权如何做模拟交易?

买卖期权的第一步就是要有期权账户&#xff0c;国内的期权品种有商品期权和ETF期权以及股指期权&#xff0c;每种的开户方式和要求都不同&#xff0c;下文为大家介绍期权如何交易&#xff1f;期权如何做模拟交易&#xff1f; 一、期权交易需要开立一个期权账户&#xff0c;可以…...

【新书推荐】大模型赛道如何实现华丽的弯道超车 —— 《分布式统一大数据虚拟文件系统 Alluxio原理、技术与实践》

文章目录 大模型赛道如何实现华丽的弯道超车 —— AI/ML训练赋能解决方案01 具备对海量小文件的频繁数据访问的 I/O 效率02 提高 GPU 利用率&#xff0c;降低成本并提高投资回报率03 支持各种存储系统的原生接口04 支持单云、混合云和多云部署01 通过数据抽象化统一数据孤岛02 …...

Calendar对象获取当前周的bug

项目场景&#xff1a; 双周项目管理&#xff0c;需要获取当前周为一年之中的第几周&#xff0c;原先的代码是用Calendar对象&#xff0c;先用setTime&#xff08;&#xff09;把当前时间传入&#xff0c;再用get&#xff08;3&#xff09;获取一年中的第几周 问题描述 实际发…...

嵌入式环境buildroot的espeak配置与编译

1、在buildroot目录下输入make menuconfig 2、选择Target packages 3、选择Audio and video applications 4、选择espeak、选择alsa via portaudio &#xff08;新版嵌入式linux一般都是用alsa音频驱动&#xff09; 5、配置portaudio 选择Library 6、选择Audio/Sound 7、选择…...

物理机环境搭建-linux部署nginx

1、安装nginx部署所需依赖 yum install -y gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel2、安装nginx包 wget http://nginx.org/download/nginx-1.8.0.tar.gz 如果没有wget可以安装一下 yum install -y wget下载完成后可以在/usr/local/下放置tar包&#xf…...

删除安装Google Chrome浏览器时捆绑安装的Google 文档、表格、幻灯片、Gmail、Google 云端硬盘、YouTube网址链接(Mac)

删除安装Google Chrome浏览器时捆绑安装的Google 文档、表格、幻灯片、Gmail、Google 云端硬盘、YouTube网址链接(Mac) Mac mini操作系统&#xff0c;安装完 Google Chrome 浏览器以后&#xff0c;单击 启动台 桌面左下角的“显示应用程序”&#xff0c;我们发现捆绑安装了 Goo…...

硬件故障诊断:快速定位问题

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

IP代理与加速器:理解它们的区别与共同点

在网络使用过程中&#xff0c;我们经常会遇到需要提高访问速度或保护隐私的需求。IP代理和加速器都是常见的应对方案&#xff0c;但它们在工作原理和应用场景上存在一些区别。本文将为您深入探讨IP代理和加速器的异同&#xff0c;帮助您更好地理解它们的作用和适用情况&#xf…...

Java中List转字符串的方法

一、使用String.join方法 在Java 8之后&#xff0c;String类增加了一个静态方法join()&#xff0c;可以方便地将列表中的元素连接成字符串。 // 创建List List<String> list Arrays.asList("Google", "Baidu", "Taobao"); // 以逗号分隔…...

PyTorch实战:实现MNIST手写数字识别

前言 PyTorch可以说是三大主流框架中最适合初学者学习的了&#xff0c;相较于其他主流框架&#xff0c;PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是&#xff0c;框架可以类比为编程语言&#xff0c;仅为我们实现项目效果的工具&#xff0c;也就是我们…...

【计算机网络】深入理解TCP协议二(连接管理机制、WAIT_TIME、滑动窗口、流量控制、拥塞控制)

TCP协议 1.连接管理机制2.再谈WAIT_TIME状态2.1理解WAIT_TIME状态2.2解决TIME_WAIT状态引起的bind失败的方法2.3监听套接字listen第二个参数介绍 3.滑动窗口3.1介绍3.2丢包情况分析 4.流量控制5.拥塞控制5.1介绍5.2慢启动 6.捎带应答、延时应答 1.连接管理机制 正常情况下&…...

springboot整合sentinel完成限流

1、直入正题&#xff0c;下载sentinel的jar包 1.1 直接到Sentinel官网里的releases下即可下载最新版本&#xff0c;Sentinel官方下载地址&#xff0c;直接下载jar包即可。不过慢&#xff0c;可能下载不下来 1.2 可以去gitee去下载jar包 1.3 下载完成后&#xff0c;进行打包…...

signal(SIGPIPE, SIG_IGN)

linux查看signal常见信号。 [rootplatform:]# kill -l1) HUP2) INT3) QUIT4) ILL5) TRAP6) ABRT7) BUS8) FPE9) KILL 10) USR1 11) SEGV 12) USR2 13) PIPE 14) ALRM 15) TERM 16) STKFLT 17) CHLD 18) CONT 19) STOP 20) TSTP 21) TTIN 22) TTOU 23) URG 24) XCPU 25) XFSZ 2…...

FreeRTOS互斥锁的‘坑’与‘宝’:优先级翻转那些事儿,用ESP32实测给你看

FreeRTOS互斥锁的‘坑’与‘宝’&#xff1a;优先级翻转那些事儿&#xff0c;用ESP32实测给你看 在嵌入式实时系统中&#xff0c;任务调度和资源管理是核心挑战。当你开始设计多任务系统时&#xff0c;很快会遇到一个经典问题&#xff1a;多个任务需要访问共享资源&#xff08;…...

告别丑表格!用xlsx-style给Vue+Element UI导出的Excel加个美颜(附完整代码)

专业级Excel导出美化实战&#xff1a;VueElement UI与xlsx-style深度整合指南 在企业级后台管理系统开发中&#xff0c;数据报表的导出功能几乎是标配需求。但开发者常遇到这样的尴尬&#xff1a;精心设计的页面表格导出为Excel后&#xff0c;所有样式荡然无存&#xff0c;变成…...

无王无帝定乾坤,来自田间第一人:海棠铁哥定千秋

无王无帝定乾坤来自田间第一人序章山河叹岁月悠悠流转&#xff0c;山河几度浮沉。 历代豪杰争雄逐鹿&#xff0c;到头来霸业如烟&#xff0c;功名易逝。 终究难锁万古山河&#xff0c;难稳世代人心。第一章天命 世间最难得千秋基业&#xff0c;天下最珍贵万世清平。 恰逢天命归…...

618激战正酣!用易元AI备齐整个大促的千川全域推广素材(附1000套模板免费领)

618进入激战阶段后&#xff0c;千川全域推广已经不是“要不要投”的问题&#xff0c;而是素材能不能持续供给的问题。预算可以临时加&#xff0c;计划可以快速开&#xff0c;但素材如果准备不足&#xff0c;账户很快就会遇到消耗跑不动、ROI波动、爆款衰退、计划空转这些老问题…...

避坑指南:DolphinScheduler Docker部署后,MySQL数据源连不上的几种常见原因及排查

DolphinScheduler Docker部署MySQL数据源连接问题深度排查手册 当你兴冲冲地部署完DolphinScheduler的Docker版本&#xff0c;准备配置MySQL数据源时&#xff0c;突然遭遇"连接失败"的红色警告——这种挫败感我太熟悉了。去年我们团队迁移数据平台时就连续踩了三个坑…...

运维视角:用非Root用户安全部署KingbaseES数据库,附服务注册与状态检查命令

运维实战&#xff1a;以非Root用户安全部署KingbaseES数据库的完整指南 在企业的生产环境中&#xff0c;数据库作为核心数据存储组件&#xff0c;其部署安全性往往被许多运维团队忽视。传统教程中常见的"root用户直接安装"方式&#xff0c;实际上为企业埋下了严重的安…...

别再只写assign了!用三种Verilog建模风格重构你的三人表决器(行为级/数据流/门级)

别再只写assign了&#xff01;用三种Verilog建模风格重构你的三人表决器 三人表决器是数字电路设计中的经典案例&#xff0c;它能直观展示不同抽象层次的Verilog建模风格如何影响代码质量与硬件实现。很多工程师习惯性地使用assign语句完成所有设计&#xff0c;却忽略了Verilo…...

集成SERDES+RGMII双接口:BCM54616SC0KFBG在背板与光纤应用中的灵活连接方案

BCM54616SC0KFBG&#xff1a;集成 SERDES 的低功耗单口千兆以太网 PHY在数据中心的服务器接入、企业级交换机上行链路以及工业自动化控制系统中&#xff0c;物理层芯片是实现网络通信的基石。随着网络设备向高密度、低功耗演进&#xff0c;传统的以太网 PHY 面临连接灵活性受限…...

GNSS PPP宽窄巷模糊度固定算法全链路拆解

1. GNSS PPP宽窄巷模糊度固定算法概述 全球导航卫星系统&#xff08;GNSS&#xff09;精密单点定位&#xff08;PPP&#xff09;技术中&#xff0c;模糊度固定是提升定位精度的关键环节。我第一次接触这个领域时&#xff0c;被各种专业术语绕得头晕&#xff0c;直到把整个流程…...

IPv6网络规划必看:华为设备上DHCPv6与SLAAC(无状态地址分配)到底怎么选?

IPv6网络规划实战&#xff1a;华为设备地址分配方案深度解析 在IPv6网络部署的浪潮中&#xff0c;地址分配策略的选择往往成为困扰网络架构师的首要难题。当传统IPv4的DHCP方式遇上IPv6全新的SLAAC&#xff08;无状态地址自动配置&#xff09;机制&#xff0c;技术决策的复杂性…...