python 批量重命名文件_Python实现批量重命名

e6832bd862ae1a4c5c76a0cbe5e6d248.png

原文:千里码 - Python实现批量重命名

最近在网络上下载了一部漫画,漫画是图片形式的,下载下来后才发现每一张漫画图片的文件名都是没有规律且又长又复杂的,想要把它们改成按数字递增规律的,一个一个去改文件名工作量太大,浪费太多时间,于是心想用Python写一个脚本实现批量重命名的操作。

058f66a8039b5b24bfd17c5651791c63.png
文件存放在 D:/temp 路径下,文件名类似上图,图片很多,这里仅用少部分做演示

为了完成脚本,查阅了Python有关文件名的库,发现需要用到Python标准库中的os库。

一、重命名函数

Python中有一个给文件重命名的函数:

os.rename(src, dst, *, src_dir_fd=None, dst_dir_fd=None)

该函数就是将文件名从src改为dst,后两个参数用不到先忽略。

二、获取文件名函数

我们还需要获取原文件名,也就是src。

os库中还有一个函数可以获取文件名:

os.listdir(path='.')

该函数可以列出某个目录下的所有文件名。

所有我们用一个for循环可以获取每一个文件名

for file in os.listdir(r'D:/temp'):
    print(file)

输出:

%80%90%E4%B8%89%E7%A7%8B%E4.jpg
%AE%E5%8B%92%E6%9E%81%E7%A6.jpg
%E6%B3%B0%E6%99%AE%E5%8B%92.jpg
%E8%A3%85%E5%85%E6%B3%B0%E6.jpg

三、路径合并函数

由于图片文件和Python脚本并不在同一文件夹下,所以此时的src和dst并不是简单的文件名,而是由路径+文件名组成。例如,文件%80%90%E4%B8%89%E7%A7%8B%E4.jpg其实是

E:/temp/%80%90%E4%B8%89%E7%A7%8B%E4.jpg,所以我们需要将两部分组合起来。

Python的os库中有一个函数:

os.path.join(path, *paths)

该函数合理地拼接一个或多个路径部分,返回值是 path 和 *paths 所有值的连接。

上面的例子就可以像下面这样写:

os.path.join(r'D:/temp','%80%90%E4%B8%89%E7%A7%8B%E4.jpg')

批量重命名脚本

于是利用上面这些知识可以写出下面这个完整的脚本(GitHub-Yajanan/FilesPathRename):

# FilesBatchRename.py
# 导入os库
import os

# 图片存放的路径
path = r"D:/temp"

# 遍历更改文件名
num = 1
for file in os.listdir(path):
    os.rename(os.path.join(path,file),os.path.join(path,str(num))+".jpg")
    num = num + 1

运行一下,可以看到结果如下:

520465f8ad497e1d04642593f0eb9996.png

满足了我们的需求。

(正文完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值