因为之前写的Python程序,都是不支持中文的,如果要对图片操作,得手动改图片名,这样极麻烦。
这个脚本首先将所有文件重命名为 "temp_原始文件名",然后再将这些临时文件重命名为按大小排序后的名称。这样可以确保文件名不会冲突。再次运行这个脚本前,请确保备份您的文件以防万一。
import os
def rename_files_by_size(directory):
# 获取文件夹下所有图片文件,这里我们考虑 .jpg, .jpeg, .png 作为图片
extensions = ['.jpg', '.jpeg', '.png']
files = [f for f in os.listdir(directory) if os.path.splitext(f)[1].lower() in extensions]
# 根据文件大小对文件列表进行排序
files_sorted_by_size = sorted(files, key=lambda x: os.path.getsize(os.path.join(directory, x)))
# 首先将所有文件重命名为临时名称
temp_names = []
for filename in files_sorted_by_size:
temp_name = f"temp_{filename}"
os.rename(os.path.join(directory, filename), os.path.join(directory, temp_name))
temp_names.append(temp_name)
# 然后再重命名为最终名称
for idx, temp_name in enumerate(temp_names, start=1):
new_name = f"{idx}{os.path.splitext(temp_name)[1]}"
os.rename(os.path.join(directory, temp_name), os.path.join(directory, new_name))
print(f"Renamed {temp_name} to {new_name}")
if __name__ == "__main__":
rename_files_by_size("重要文字")
这个代码极简,当有重名的时候 则无法在重新命名。
import os
def rename_files_by_size(directory):
# 获取文件夹下所有图片文件,这里我们考虑 .jpg, .jpeg, .png 作为图片
extensions = ['.jpg', '.jpeg', '.png']
files = [f for f in os.listdir(directory) if os.path.splitext(f)[1].lower() in extensions]
# 根据文件大小对文件列表进行排序
files_sorted_by_size = sorted(files, key=lambda x: os.path.getsize(os.path.join(directory, x)))
# 重命名文件
for idx, filename in enumerate(files_sorted_by_size, start=1):
new_name = f"{idx}{os.path.splitext(filename)[1]}"
os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
print(f"Renamed {filename} to {new_name}")
if __name__ == "__main__":
rename_files_by_size("重要文字")
END
如本资源侵犯了您的权益,请联系投诉邮箱admin@wmphp.com进行举报!我们将在收到邮件的1个小时内处理完毕。
本站仅为平台,发布的资源均为用户投稿或转载!所有资源仅供参考学习使用,请在下载后的24小时内删除,禁止商用!
Wmphp.com(完美源码)助力正版,如您有自己的原创产品,可以联系客服投稿,代理出售!
Wmphp.com(完美源码)客服QQ:136882447
Wmphp.com(完美源码)商务电话(仅对企业客户/个人用户):15120086569 (微信同步)
请注意:本站不提供任何免费的技术咨询服务,为了节约时间,下载前 请确认自己会技术
完美源码 » Python按文件大小重命名图片名
完美源码 » Python按文件大小重命名图片名