python - 如何使用图像名称python分隔文件夹中的图像?
问题描述
我需要将文件夹中的图像与其在python中的文件名分开。例如,我有一个名为 0_source.jpg、0_main.jpg、0_cell.jpg、1_net.jpg、1_cells.jpg、2_image.jpg、2_name.jpg 的图像文件夹
我想将这些图像分开并保存在不同的文件夹中,例如:folder1:
0_source.jpg、0_main.jpg、0_cell.jpg
文件夹 2:
1_net.jpg、1_cells.jpg
文件夹 3:
2_image.jpg, 2_name.jpg
我试着环顾四周,但似乎没有一个适合我真正需要的。希望这里有人可以提供帮助。我愿意接受任何想法、建议和建议,谢谢。
解决方案
主要思想是使用正则表达式从图像名称开始提取文件夹名称。然后构建文件夹并移动图像
import shutil
import re
import os
images = ["0_source.jpg", "0_main.jpg", "0_cell.jpg", "1_net.jpg", "1_cells.jpg", "2_image.jpg", "2_name.jpg"]
def build_images_folders(image_names: [str]):
folder_name_regex = re.compile(r"^(\d)._*") # Regular expression which extract the folder starting from the image_name name
for image_name in image_names:
regex_match = folder_name_regex.match(image_name)
if regex_match:
folder_index = regex_match.group(1) # Extract the folder name
folder_name = "{folder_prefix}{folder_index}".format(folder_prefix="folder_", folder_index=folder_index) # Build the folder name
os.makedirs(folder_name, exist_ok=True) # Build the folder. If already exists, don't raise exception
src_image_path = image_name
dst_image_path = os.path.join(folder_name, image_name)
shutil.move(src_image_path, dst_image_path)
else:
error = "Invalid image name format \"{image_name}\". Expecting <number>_<string>".format(image_name=image_name)
raise ValueError(error)
if __name__ == '__main__':
build_images_folders(images
推荐阅读
- android - 读取测试数据库失败 - 权限被拒绝
- javascript - 将范围值写入拇指滑块
- r - 错误:函数的“路径”参数无效
- google-tag-manager - 为什么谷歌分析在我通过谷歌标签管理器安装后包含我的点击?
- java - 从用户注销时,ViewPager 事件给我错误
- python - 为什么使用用户定义的对象作为键时,Python 中的字典查找总是比较慢?
- node.js - 尝试在 Windows 上安装 NPM 包时遇到证书错误。我正在使用节点 v10.9.0
- javascript - 如何使用 react-native-link-preview 从 url 获取标题
- python - 禁止在类外部使用默认构造函数
- vb.net - 在 VB.NET 中读取时从文件中排除二进制数据的前 'x' 个字节