python修改文件名字数字_如何用Python一键修改上万个文件名

本文介绍了如何使用Python快速修改大量文件的名称,通过正则表达式去除不需要的部分,提高工作效率。提供了一段代码示例,展示如何遍历目录并重命名文件,以及解释了代码的工作原理。
摘要由CSDN通过智能技术生成

头疼的修改文件名,我是傻了 同事问我会不会改目录下的文件名,我大叫一声:你傻呀,你不会右键重命名呀呀,或者按 F2快捷键,但是当我解压完同事的目录后,人都傻了,自己看图哈!!

51abf30f6e3e110f199013e5c993de89.png

偷偷告诉你,这样的文件有一大堆,如果你右键估计一天才能搞定,顿时我就不敢出声了。

先看同事的需求是什么:帮他去掉类似 [图灵程序设计丛书].的词,只留下书名

看到这,请问小伙伴们你是怎么解决的,欢迎留言一起吐槽,哈哈哈哈哈哈。

茅塞顿开,秒解决同事问题 在我思考如何解决同事这个问题时,我的脑海中突然灵光一闪,之前写过一键修改图片大小的程序,那我为何不也写个程序直接一键修改文件名呢!!!说干就干

考虑到时效性,我用了Python来写这个小程序,上代码:

import os

import re

import time

"""对指定目录下的所有文件进行有选择的修改名称"""

def ReFileName(dirPath,pattern):

"""

:param dirPath: 文件夹路径

:param pattern: 正则匹配模式

:return:

"""

# 对目录下的文件进行遍历

for file in os.listdir(dirPath):

# 判断是否是文件

if os.path.isfile(os.path.join(dirPath, file)) == True:

# 用正则匹配,去掉不需要的词

newName = re.sub(pattern, "", file)

# 设置新文件名

newFilename = file.replace(file, newName)

# 重命名

os.rename(os.path.join(dirPath, file), os.path.join(dirPath, newFilename))

print("文件名已统一修改成功")

if __name__ == '__main__':

timeStart = time.time()

dirPath = r"F:\test"

pattern = re.compile(r'\[{1}(.+)]\.')

ReFileName(dirPath,pattern)

timeEnd = time.time()

print("程序走了%d秒"%(timeEnd-timeStart))

代码简要说明一下:

因为这里需求只是简单的修改文件名,所以小伙伴们千万不要用open()……这种方法,虽然它也是可以的,但是因为文件太多,读写太慢,时效极低。

还有需要替换或者提取的文件名,不仅限于图中所示,你可以灵活运用正则表达式来达到自己的需求。

看效果:

c2fc569049d2355eb2b42d5cefbf9220.png

再看程序运行时间:

a836a76826b7dd37e367ee86a6e5100a.png

这里再分享一个干货给小伙伴们哈!!python获取当前目录下的一些信息。

"""获取当前目录下的信息"""

def ReFileName1(dirPath):

for root, dirs, files in os.walk(dirPath):

print(root) # 当前目录路径

print(dirs) # 当前路径下所有子目录

print(files) # 当前路径下所有非目录子文件

好了,此篇文章就分享到这里咯,看到这还不留个赞,有点说不过去了吧!! 哈哈~ 作者:放牛娃学编程

[拿走不谢!Python 3.9 官方中文文档,限时领!] (http://dwz.date/dE6v)

[限时!速领!14张高清Python速查表,效率提升必备!] (http://dwz.date/dE6w)

[GitHub标星3W+,80个Python案例,带你轻松玩转Python学习!] (http://dwz.date/dE64)

原文链接:https://blog.csdn.net/weixin_43507410/article/details/113933283

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值