ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

mac数据集中的异常文件

2022-08-16 12:33:02  阅读:137  来源: 互联网

标签:文件 type mac 文件夹 dict file path 异常


1背景

提取训练图片。总共N张,但是启动训练的时候多了一个文件,总文件数量N+1;训练过程报错

AttributeError: ‘NoneType‘ object has no attribute ‘astype‘

错误原因:https://blog.csdn.net/qq_40475568/article/details/83415948?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-1-83415948-blog-123857325.experiment_layer_sa&spm=1001.2101.3001.4242.2&utm_relevant_index=4

1 cv2.imread的文件路径错误,比如:

①路径不存在;

②路径错误,不是指向图片所在位置的路径;

③路径中包含中文字符,如汉字以及【】等中文字符

2读取的图片使不合法的,比如要求读入.png格式而实际读入.jpg格式

3 opencv没有配置好或版本不对 ,尝试重装


 

查看文件夹,没有找到多的一个文件在哪里啊???

既然提示训练过程数据量比预定的多了一张,那我们先看看哪个数据集多了一个“文件”

import os
 
#文件夹中的文件计数函数
def file_count(local_path, type_dict):
    global all_file_num                 # 声明全局变量
    file_list = os.listdir(local_path)  # 列出本地文件夹第一层目录的所有文件和目录
    for file_name in file_list:
        if os.path.isdir(os.path.join(local_path, file_name)):  # 判断是文件还是目录,是目录为真
            type_dict.setdefault("文件夹", 0)      # 如果字典key不存在,则添加并设置为初始值
            type_dict["文件夹"] += 1
            p_local_path = os.path.join(local_path, file_name)  # 拼接本地第一层子目录,递归时进入下一层
            file_count(p_local_path, type_dict)
        else:
            ext = os.path.splitext(file_name)[1]  # 获取到文件的后缀
            if(ext != '.png'):
                print("*")
            type_dict.setdefault(ext, 0)          # 如果字典key不存在,则添加并设置为初始值
            type_dict[ext] += 1
            all_file_num += 1                     # 计算总文件数量
    return all_file_num
 
 
if __name__ == '__main__':
    local_path = '/Users/一只猫/data/trains/0'          #文件夹的路径,便利各个文件夹
    type_dict = dict()              # 定义一个保存文件类型及数量的空字典
    all_file_num = 0                #计算本地总文件数
    file_count = file_count(local_path, type_dict)   # 运行函数,power by luotao
 
    # 打印文件类型以及数量
    for each_type in type_dict:
        print(f"文件类型为【{each_type}】的数量有:{type_dict[each_type]} 个")
    print(f"总文件数量为:{file_count}")

找到/0文件夹下文件多了一个,文件类型【】;不是png;但是把文件夹翻来覆去看也没有找到这个多余的文件呀????

那么会不会是一个隐藏文件?通过上述程序发现那个多余的文件 .DS_;打开终端,到目标文件夹,ls -la;看到了吗???

 

 

那我们下一步要做的就是删除多余文件:

在「访达」中打开「应用程序」> 「实用工具」 > 「终端」。
定位到你要删除 .DS_Store 文件的文件夹目录下。
在「终端」里输入`cd`命令,跟上你的目录文件夹路径,例如: `cd /Users/username/pictures`。
回车。
输入命令 `find . -name '.DS_Store' -type f -delete`。
再次回车。

现在再次运行文件数量的统计程序,那个多余的没有了。。。

标签:文件,type,mac,文件夹,dict,file,path,异常
来源: https://www.cnblogs.com/8335IT/p/16591123.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有