2000张不同的图片分别放到2000个文件夹(已创建好的)中用python怎么实现啊。

2000张不同的图片分别放到2000个文件夹(已创建好的)中用python怎么实现啊。

img


图片名称是统一的:sprite.png,只要上面每个文件夹放一张就可以了

img


感谢大家,初步思路有了,后面不知道怎么写了……

可以使用Python的os模块和shutil模块来实现这个任务。

首先,你需要将所有的图片文件名存储到一个列表中。可以使用os模块的listdir()函数来获取指定目录下的所有文件名,然后使用列表推导式来筛选出所有的图片文件名。

import os

# 获取指定目录下的所有文件名
dir_path = "/path/to/directory"
file_names = os.listdir(dir_path)

# 筛选出所有的图片文件名
image_names = [f for f in file_names if f.endswith(".jpg") or f.endswith(".png")]

接下来,你需要遍历所有的图片文件名,并将它们移动到对应的文件夹中。可以使用shutil模块的move()函数来实现文件的移动操作。

import shutil

# 遍历所有的图片文件名,并将它们移动到对应的文件夹中
for image_name in image_names:
    # 获取图片对应的文件夹路径
    folder_name = image_name.split(".")[0]
    folder_path = os.path.join(dir_path, folder_name)
    
    # 如果文件夹不存在,则创建它
    if not os.path.exists(folder_path):
        os.mkdir(folder_path)
    
    # 移动图片文件到对应的文件夹中
    image_path = os.path.join(dir_path, image_name)
    shutil.move(image_path, folder_path)

这样,所有的图片就会被移动到对应的文件夹中了。

这2000张图片和2000个文件夹放的规则是啥呢,比如图片文件夹的名是不是有对应关系的,如果有的话,可以循环这2000张图片,然后通过名字对应关系找到需要放的文件夹,然后直接用python的文件模块放进去就可以了, 比如:


import shutil

#这个规则可以根据具体情况生成
copy_rules = [
    ['/images/img1.png', '/target_dir/dir001'], # 图片路径, 需要存放的路径
    ['/images/img2.png', '/target_dir/dir002'], # 图片路径, 需要存放的路径
    ['/images/img3.png', '/target_dir/dir003'], # 图片路径, 需要存放的路径
]

for i in range(len(copy_rules)):
    shutil.copy(copy_rules[i][0], copy_rules[i][1])
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7729351
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:爬虫 | Python爬取20000+猫眼影评实战
  • 除此之外, 这篇博客: python 爬虫案例(数据2000+)中的 网页分析 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述

  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案:

    可以使用Python的shutil库来实现将图片文件分别存储到对应文件夹中的操作。具体步骤如下:

    1.首先,需要将2000张图片的路径存储在一个列表中,可以使用os库的walk函数遍历图片所在的目录,并将路径存储到列表中。

    import os pic_path_list = [] for root, dirs, filenames in os.walk('pictures_directory'): for filename in filenames: pic_path_list.append(os.path.join(root, filename))

    2.然后,遍历图片路径列表,使用Python的随机数函数(如random.randint())来随机生成图片所在的目标文件夹编号,将图片移动到对应编号的文件夹中。

    import shutil import random for pic_path in pic_path_list: dest_folder = str(random.randint(1, 2000)) if not os.path.exists(dest_folder): os.makedirs(dest_folder) shutil.move(pic_path, os.path.join(dest_folder, os.path.basename(pic_path)))

    这样就可以将2000张不同的图片分别存储到对应的文件夹中了。需要注意的是,如果文件夹编号比较大(如上述例子中的2000),可能需要创建好几个层级的文件夹(如1/2/3/4/.../2000),以避免创建过多的扁平结构文件夹。

解决了,感谢大家的指点,代码如下

img