文件批量重命名(遍历目录及其子目录)
以下代码是将文件名中的带.以及之后的去除掉
eg: 文件test.ssssssssss.sasasasa.txt
去除后为:test.txt
# !/usr/bin/python
# -*- coding:utf-8 -*-
import os
def get_file_list(dir, file_list):
old_dir = dir.replace("\\", '/')
if os.path.isfile(old_dir):
file_list.append(old_dir.decode('utf-8'))
file_name = os.path.split(old_dir)[1]
split_name = os.path.splitext(file_name)
new_name = split_name[0].split('.', 1)[0] + split_name[1]
path = (os.path.split(old_dir)[0] + '/' + new_name).replace('\\','/')
print path
os.rename(old_dir, path)
print file_name + '重命名为' + new_name
elif os.path.isdir(old_dir):
for s in os.listdir(old_dir):
# 如果需要忽略某些文件夹,使用以下代码
# if s is "xxx":
# continue
new_dir = os.path.join(old_dir, s).replace('\\', '/')
get_file_list(new_dir, file_list)
return file_list
if __name__ == "__main__":
image_list = get_file_list('C:\Users\Administrator\Desktop\img', [])
amount = 0
for path in image_list:
amount += 1
print ('共重名名' + str(amount) + '个文件')
*注意文件路径中'\'在python中为转义字符,处理方式将其替换为'/'