Python重命名文件夹下的文件(包含子文件夹下的文件)
这两天闲着无聊,看到福建疫情,然后想着停课的孩子们在家可能也会很无聊,可能就在家天天手机。所以想着爬些小孩子感兴趣的故事来玩儿。爬了一千多吧。部分截图如下:

这是从网站爬下来的初始格式,没有去更改,对于有强迫症的我来说,文件名加后缀格式就可以了,文件名里有字符串 mp3是咋回事嘛。所以想着批量处理下。以下是处理代码:
import os
import sys
dPath = 'X:\故事\世界著名童话' # 存储要修改文件名的文件夹
files = os.listdir(dPath) # 先遍历
n = 0 # 设置初始值
for i in files: # 遍历文件
oldfilename = dPath +'\\' + files[n] # 获取旧的文件路径和名称
# print(oldfilename) # 打印看是否符合预期
if ' mp3' in oldfilename: # 我们加个判定条件吧
newfilename = dPath + '\\' + i.replace(' mp3', '') # 要改成的路径和文件名
print(newfilename) # 打印看是否符合预期
os.rename(oldfilename, newfilename) # 开始重命名
print("已经将文件====>" + i + "更名为:" + newfilename) # 提示结果
else:
print('文件===> 【' + i + '】 无需整理!') # 如果条件里没有,我们就不整理了
n += 1
代码运行完才发现是处理了另一个子文件夹,没有处理到故事根文件夹下的所有子文件夹。效果如下:

还得去写个处理二级文件夹下的批量改名还有处理批量解压的代码。
============================补充,将一个名为儿童故事的子目录所有文件进行重命名======================================
最初始的文件夹结构是下面这样的

然后子目录下的文件是下面这样的:

# 补充之前的代码,只做了一个子文件夹,这不刚跑步回来,想了个简单的方法。贴代码。
import os
import sys
def reName(dPath):
# 读取该文件夹下的所有文件(包括文件夹)
files = os.listdir(dPath)
n = 0 # 初始化计值
# 开始遍历文件
for i in files:
# 原来文件的路径和名称
oldfilename = dPath + '\\' + files[n]
print(oldfilename)
# 如果是文件夹就递归调用函数
if os.path.isdir(oldfilename):
reName(oldfilename)
# 如果不是文件夹,我们就这样处理
if ' mp3' in oldfilename:
newfilename = dPath + '\\' + i.replace(' mp3', '') # 我们将原来的文件名去掉mp3
print(newfilename) # 打印看是否符合预期
# 符合预期就就地重命名文件
os.rename(oldfilename, newfilename)
print('已经将文件名为====>【 ' + i + ' 】更改为:===>' + newfilename)
else:
print('文件名为========>【' + i + '】无需整理!' )
n += 1
filePath = 'X:\故事'
reName(filePath) #调用函数进行处理
一运行呢,就把指定的filePath下的所有文件都重命名了。这里只是多做了个判定,判定如果是文件夹,就递归调用函数进行处理文件夹下的文件。

浙公网安备 33010602011771号