【问题标题】:Remove images in multiple folders (Python)删除多个文件夹中的图像(Python)
【发布时间】:2020-08-24 21:12:12
【问题描述】:

我想写一个python脚本来随机只保留多个文件夹中的一些图像。

我是 python 新手,我正在努力寻找解决方案。但是,我还没有找到一个好的开始。 如果有人可以帮助我,我将不胜感激。谢谢。

【问题讨论】:

  • 你有没有尝试过,你在哪里遇到问题?
  • 我正在尝试。

标签: python python-3.x image directory


【解决方案1】:

这可能会对您有所帮助。它首先检索所有目录的列表,然后删除随机文件以仅获取 n 个文件。注意:必须声明 path_to_all_images_folder

import os
import random
def keep_n_dir(directory, n):
    files = os.listdir(directory) #You retrieve the list of names of files
    if len(files) > n: #If you already have less than n files, you do nothing
        diff = len(files) - n
        files_to_delete = random.sample(files, k=diff) #Random sample files to delete
        for file in files_to_delete: 
            os.remove(os.path.join(directory, file)) #Delete additional files

directories = os.listdir(path_to_all_images_folder)
directories = [os.path.join(path_to_all_images_folder, folder) for folder in directories]
for directory in directories:
    if os.path.isdir(directory):
        keep_n_dir(directory, n)

注意!此代码从目录中删除其他文件。它只保留n。

【讨论】:

  • 谢谢。我用字符串“all_images”替换了“path_to_all_images_folder”,这是我的主文件夹的路径。但是,我收到了这个错误:NotADirectoryError: [Errno 20] Not a directory: 'all_images/.DS_Store'。我该怎么办?
  • 对不起,我以为你那里只有目录。我已经更新了代码
猜你喜欢
  • 1970-01-01
  • 2019-03-21
  • 2018-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-22
相关资源
最近更新 更多