想把当前目录下所有的图片的后缀名改成该图片的修改时间的时间戳,运行了一下没有生效,是哪里写的不对?谢谢
import os
from datetime import datetime
def rename_images_with_creation_time(directory):
# 获取目录下的所有文件
files = os.listdir(directory)
for file in files:
file_path = os.path.join(directory, file)
try:
# 打开文件检查是否为图片
with open(file_path, 'rb') as img_file:
if img_file.read(4): # 简单检查文件头部是否非空
# 获取文件创建时间
creation_time = os.path.getctime(file_path)
# 将创建时间转换为字符串时间戳
timestamp_str = str(int(creation_time))
# 获取文件扩展名
file_extension = os.path.splitext(file)[1]
# 新文件名
new_file_name = timestamp_str + file_extension
new_file_path = os.path.join(directory, new_file_name)
# 重命名文件
os.rename(file_path, new_file_path)
print(f"文件 '{file}' 已重命名为 '{new_file_name}'")
except (IOError, FileNotFoundError):
pass
# 获取当前目录路径
directory_path = os.getcwd()
# 重命名并打印所有图片文件
rename_images_with_creation_time(directory_path)
windows 文件被打开时是没有办法改名的,得先把文件关闭了才能改名。