python 批量修改某目录下的所有文件
#! /usr/bin/python
# coding:utf-8
“‘
主要需求是 修改指定目录下的所有文件名称(比如所有图片文件名称统一加上_)
设计如下
1,先确定好一个路径
2,区分是否是目录还是文件
3,如果是文件,怎么区分是图片
4,确定了图片,需要对文件名进行修改
作者 琦琦爸爸
’”
# -*- coding:utf-8 -*-
import os
def change_name(path):
#下面这段if判断的代码的主要意思是,判断是否是目录或者是文件
if not os.path.isdir(path) and not os.path.isfile(path):
return False
#如果是文件
if os.path.isfile(path):
#用来区分文件目录和文件名称。2个打印内容实际中可以不写,这里主要是为了看清楚
wenjianlujin=os.path.split(path)
print(wenjianlujin[0])
print(wenjianlujin[1])
#下面这段代码主要是用来将获取到的文件名称按split方法来切割获取文件前缀和文件后缀
wenjianmingchen=wenjianlujin[1]
wenjianmingchafen=wenjianmingchen.split('.')
print(wenjianmingchafen[0])
print(wenjianmingchafen[1])
#定义一个列表,用来规定哪些文件满足要改名字的后缀
biaozhungeshi=['bmp','jpeg','gft','psd','png','jpg']
根据获取到的文件后缀,在上面的列表中遍历
if wenjianmingchafen[1] in biaozhungeshi:
#如果遍历到需要修改的文件,用os.rename(旧名字,新名字)
os.rename(path,wenjianlujin[0]+'/'+wenjianmingchafen[0]+'_1'+wenjianmingchafen[1])
#判断给定的路径是否是目录
if os.path.isdir(path):
#如果是目录,则遍历目录列表中的所有项
for x in os.listdir(path):
#下面代码将遍历每个文件,并且将目录名称和文件名称组成带文件名称的完整路径
name=os.path.join(path,x)
#print(name)
#将完整路径再次传输给函数change_name
change_name(name)
#定义一个需要修改的文件的目录路径
img_dir="C:\Users\Administrator\Desktop\image"
#将'\'转变成'/' 注意'\'需要使用\来转义
img_dir=img_dir.replace('\\','/')
#将路径当成参数传递给函数
change_name(img_dir)