python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python按顺序批量修改文件名

python如何按顺序批量修改文件名

作者:Louise喵

这篇文章主要介绍了python如何按顺序批量修改文件名问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python按顺序批量修改文件名

在之前批量修改文件名的时候出现的问题是使用os.listdir出现乱序,即修改文件名的时候不按照文件排列的顺序,导致了不必要的麻烦。

os.listdir排列的顺序是按照例如:1,10,11,2,20,21…的顺序想达到的正常顺序:1,2,3,4,5…

解决代码

import os
#设定文件路径
path='C:/Users/Louise喵/Desktop/FOV60/'
#获取该目录下所有文件,存入列表中
fileList=os.listdir(path)
#get_key是sorted函数用来比较的元素,该处用lambda表达式替代函数。
get_key = lambda i : int(i.split('.')[0])
new_sort = sorted(fileList, key=get_key)
#print(fileList, '\n', new_sort)
n = 0
for i in fileList:
    # 设置旧文件名(就是路径+文件名)
    oldname = path + os.sep + new_sort[n]  # os.sep添加系统分隔符
    # 设置新文件名
    newname = path + os.sep + 'p' + str(n + 1)+'.csv'
    os.rename(oldname, newname)  # 用os模块中的rename方法对文件改名
    print(oldname, '   ======>  ', newname)
    n += 1

其中排序的关键语句为:

get_key = lambda i : int(i.split('.')[0])
new_sort = sorted(fileList, key=get_key)

split()是一个常用的分隔字符的方法,split(‘.’)[0]表示以 .进行分隔取.前面的内容。

运行结果:

python批量按顺序递增修改文件名代码(可指定文件名)

如需在文件名添加其它相应字符,修改代码相应字符部分即可,此方法比较简单,容易理解。

import os
# 设置要重命名的文件夹路径
folder_path = 'C:/Users/Administrator/Desktop/CR/RGB三通道'
# 获取文件夹中所有文件名
file_names = os.listdir(folder_path)
# 设置起始编号
start_num = 1
# 遍历文件名列表并修改文件名
for file_name in file_names:
    # 获取文件名的后缀
    file_extension = os.path.splitext(file_name)[1]
    # 构造新的文件名
    new_file_name = str(start_num) + file_extension
    #也可在此处添加相应的字符,有区别重命名文件
    #new_file_name = "相应字符"+str(start_num) + file_extension
    # 构造旧文件的路径和新文件的路径
    old_file_path = os.path.join(folder_path, file_name)
    new_file_path = os.path.join(folder_path, new_file_name)
    # 重命名文件
    os.rename(old_file_path, new_file_path)
    print(f'{file_name}已重命名为{new_file_name}')
    # 递增编号
    start_num += 1

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文