好友
阅读权限 10
听众
最后登录 1970-1-1
想实现自动收纳的功能,目前只实现了后缀001的能够生成,我不知道是不是我的思路有问题
修改前
修改后
但是我想实现的是完整的收纳,把相同的图片都保存在一个文件夹下,请大佬有提修改意见的吗
期望图
完整代码:
import os
import shutil
# 源图片文件夹路径
source_folder = "C: \\ Vido"
def remove_last_whitespace_in_folder ( folder_path) :
# 遍历文件夹下的所有文件
for file_name in os.listdir( folder_path) :
# 获取文件路径
file_path = os.path.join( folder_path, file_name)
# 检查是否是图片文件
if os.path.isfile( file_path) and file_name.lower() .endswith( ( '.jpg' , '.jpeg' , '.png' , '.gif' ) ) :
# 获取图片名字和扩展名
image_name, ext = os.path.splitext( file_name)
# 去除名字中最后一个空白符
last_non_whitespace_index = len ( image_name) - 1
while last_non_whitespace_index >= 0 and image_name[ last_non_whitespace_index.isspace() :
last_non_whitespace_index -= 1
new_image_name = image_name[ :last_non_whitespace_index + 1 ]
# 生成新的文件路径
new_file_path = os.path.join( folder_path, new_image_name + ext)
# 重命名文件
os.rename( file_path, new_file_path)
# 示例文件夹路径
folder_path = "C: \\ Vido"
# 去除文件夹下的图片名字中最后一个空白符
remove_last_whitespace_in_folder( folder_path)
# 遍历源文件夹中的所有文件
for filename in os.listdir( source_folder) :
if filename.lower() .endswith( ( '.png' , '.jpg' , '.jpeg' , '.gif' ) ) : # 判断文件是否为图片
if "001" in filename:
# 创建以文件名命名的文件夹
folder_name = os.path.splitext( filename)[ 0 ]
os.makedirs( os.path.join( source_folder, folder_name) , exist_ok =True )
# 移动图片文件到新创建的文件夹中
source_path = os.path.join( source_folder, filename)
destination_path = os.path.join( source_folder, folder_name, filename)
shutil.move( source_path, destination_path)
if "00" not in filename: # 判断文件名是否不包含 "00"
# 创建以文件名命名的文件夹
folder_name = os.path.splitext( filename)[ 0 ]
os.makedirs( os.path.join( source_folder, folder_name) , exist_ok =True )
# 移动图片文件到新创建的文件夹中
source_path = os.path.join( source_folder, filename)
destination_path = os.path.join( source_folder, folder_name, filename)
shutil.move( source_path, destination_path)
新人,不太会表达,望谅解。
发帖前要善用【论坛搜索 】 功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。