python实现文件的批量重新命名后缀名
前言
**
现在有个需求,把一个文件夹的下相同后缀名(.txt .jpg .AWS)的文件,批量修改文件名并且复制或者移动到想要的文件。
**
常见的就是相机照片自动有JPG和AWS两种格式,当我们想要挑选出其中的一种时候,可以使用此程序批量为您挑选出JPG格式的照片
提示:以下是本篇文章正文内容,下面案例可供参考
一、话不多说 上代码示例
代码如下(示例):
import os
import shutil
def change_file_extensions(Original_directory, Working_directory, old_extension, new_extension):
"""
批量更改指定目录下所有文件的扩展名。
:param directory: 包含文件的目录路径
:param old_extension: 要更改的旧扩展名(包含点,如'.txt')
:param new_extension: 新的扩展名(包含点,如'.md')
"""
# 遍历目录中的所有文件和文件夹
for filename in os.listdir(Original_directory):
# 检查文件名是否以指定的旧扩展名结尾
i = 0
if filename.endswith(old_extension):
# 构建原文件的完整路径
old_name = os.path.join(Original_directory, filename)
# 去除旧扩展名,添加新扩展名,构建新文件名
# 注意:使用os.path.splitext()来安全地分割文件名和扩展名
root, ext = os.path.splitext(filename)
if ext.lower() == old_extension.lower(): # 确保扩展名匹配(忽略大小写)
# 拼接一个新的文件入径
new_name = os.path.join(Working_directory, root + new_extension)
# 将文件复制到想要的入径保存,copy2就是将文件的创建时间等信息也完整复制过去,
# 此处可以改为move函数,意味直接移动。
shutil.copy(old_name, new_name)
i += 1
print(f'{i} Renamed "{old_name}" to "{new_name}"')
# 使用示例
Original_directory = 'E:\\100MSDCF' # 原文件目录,即要转换的文件目录
Working_directory = 'D:\\photo_process'
old_extension = '.ARW' # 旧文件扩展名
new_extension = '.jpg' # 新文件扩展名
change_file_extensions(Original_directory, Working_directory, old_extension, new_extension)
再讲两句
1.此程序如果你新旧扩展名一样,那么相当于把文件复制过去想要的地方。适用于照相机
2.copy函数改为copy2s时它会全盘复制信息,包括原文件的创建信息
3.如果文件路径有问题建议像我代码示例一样,用双斜杆。