欢迎来到小居数码网-一家分享数码知识,生活小常识的网站,希望可以帮助到您。

当前位置:生活小常识 > 数码知识 >
优质

python批量文件重命名(python批量重命名文件夹)

数码知识

周传杰优秀作者

原创内容 来源:小居数码网 时间:2024-07-28 14:55:01 阅读() 收藏:33 分享:62

导读:您正在阅读的是关于【数码知识】的问题,本文由科普作家协会,生活小能手,著名生活达人等整理监督编写。本文有874个文字,大小约为4KB,预计阅读时间3分钟。

当前支持在单个文件夹下重命名,并提前备份原文件,过滤子文件夹,对于原名和新名相同的文件,不作修改

python批量重命名文件夹

代码:

import osimport shutilimport datetimedef backup_files(src_path):    filenames = os.listdir(src_path)    for filename in filenames:        old_name = os.path.join(src_path, filename)        if os.path.isdir(old_name):            continue        shutil.copy(old_name, backup_path)def batch_rename(src_path,date):    filenames = os.listdir(src_path)    same_name = []    count = 0    for filename in filenames:        old_name = os.path.join(src_path, filename)        if os.path.isdir(old_name):            continue        count += 1        change_name = date + '_%04d' % count + '.' + filename.split('.')[1]        new_name = os.path.join(src_path, change_name)        if change_name in filenames:            same_name.append(change_name)            continue        os.rename(old_name, new_name)    print('n一共' + str(count) + '个文件,' + '修改了' + str(int(count) - len(same_name)) + '个文件的名字')    if len(same_name) > 0:        print('其中有' + str(len(same_name)) + '个文件的原名与新名相同,不作修改')if __name__ == '__main__':    date = datetime.datetime.now().strftime('%m%d')    src_path = r'C:Users1Desktop2'    backup_path = src_path + '/' + 'backup/'    if not os.path.exists(backup_path):        os.makedirs(backup_path)    backup_files(src_path)    batch_rename(src_path,date)

笔记:

1.需要用到Python库的os,shutil,datetime

2.定义backup_files()函数用于在重命名之前备份原文件

3.os.listdir()列出文件夹内所有文件,包括子文件夹,由于并不需要重命名子文件夹,因此用下面代码过滤掉子文件夹,os.path.isdir()判断是否为文件夹,如果是,则continue跳过,代码如下:

if os.path.isdir(old_name):  continue

4.shutil.copy()将原文件复制到另一个路径下,传入两个参数,第一个是需要复制的文件(包含路径),第二个是目标文件夹路径

5.定义batch_rename()函数用于批量重命名

6.循环遍历文件,获取旧的文件名old_name,同样需要过滤文件夹

7.设定新文件名的格式change_name,可随意设置,这里以“当天日期+第n个文件+原后缀”为名,其中filename.split('.')[1]将原文件名以.为分隔符将名字和后缀分开,得到一个列表,取列表第1个元素,即后缀

8.为避免原名与新名重复而导致重命名后覆盖原文件,用if判断语句跳过同名文件,并将同名的文件名添加到same_name列表中,代码如下:

if change_name in filenames:  same_name.append(change_name)  continue

9.用os.rename()方法对文件重命名,传入两个参数,第一个原文件名(包含路径),第二个新文件名(包含路径)

10.用datetime获取当前日期和时间,datetime.datetime.now()获取当前时间,年月日+时分秒,strftime()用于格式化时间,可指定获取时间的格式,例如只输出年份,或者只输出月+日

#这里输出当天的月+日date = datetime.datetime.now().strftime('%m%d')

上面就是小居数码小编今天给大家介绍的关于(python批量重命名文件夹)的全部内容,希望可以帮助到你,想了解更多关于数码知识的问题,欢迎关注我们,并收藏,转发,分享。

94%的朋友还想知道的:

(563)个朋友认为回复得到帮助。

部分文章信息来源于以及网友投稿,转载请说明出处。

本文标题:python批量文件重命名(python批量重命名文件夹):http://sjzlt.cn/shuma/152287.html

猜你喜欢