import os
def change_photo_format(directory, new_extension='.jpg'):
# 遍历指定目录下的所有文件
for filename in os.listdir(directory):
file_path = os.path.join(directory, filename)
# 确保是文件而不是文件夹
if os.path.isfile(file_path):
# 分割文件名和扩展名
file_root, file_extension = os.path.splitext(filename)
# 检查原始扩展名是否为图片格式,如果不是则跳过
if file_extension.lower() not in ['.png', '.jpeg', '.jpg', '.gif', '.bmp', '.tiff', '.jfif']:
continue
# 构建新的文件名,使用新的扩展名
new_filename = file_root + new_extension
new_file_path = os.path.join(directory, new_filename)
# 重命名文件
os.rename(file_path, new_file_path)
print(f"Renamed '{filename}' to '{new_filename}'")
# 指定包含照片的目录路径
directory_path = '/path/to/your/photos'
# 调用函数,将目录中所有照片的格式更改为.jpg
change_photo_format(directory_path)
代码说明:
-
函数定义:change_photo_format函数接受两个参数,directory是包含照片的目录路径,new_extension是新的文件扩展名,默认为.jpg。
-
遍历文件:使用os.listdir()遍历指定目录中的所有文件。
-
构建文件路径:使用os.path.join()构建每个文件的完整路径。
-
检查文件类型:使用os.path.isfile()检查路径是否为文件。
-
分割文件名:使用os.path.splitext()分离文件名和扩展名。
-
检查扩展名:如果原始文件的扩展名不是图片格式,则跳过该文件。
-
构建新文件名:使用新的扩展名构建新的文件名。
-
重命名文件:使用os.rename()函数重命名文件。
-
输出信息:每次重命名操作后,打印一条消息,显示原始文件名和新的文件名。
-
调用函数:设置目录路径,然后调用change_photo_format函数执行操作。
directory_path目录中的所有图片文件的扩展名将被更改为.jpg。如果你想要更改为其他格式,可以修改new_extension参数。请注意备份原始文件以防意外。