glob.glob()的一个坑
在学习到《Tensoflow:实战Google深度学习框架(第2版)》-第六章图像识别与卷积神经网络- 6.52.Tensorflow实现迁移学习的章节当中,遇到了一个预处理图像的一个坑。
# 获取一个子目录中所有的图片文件
extensions = ['jpg', 'jpeg','JPG','JPEG'] # 注意下这里file_list = []dir_name = os.path.basename(sub_dir)for extension in extensions:file_glob = os.path.join(INPUT_DATA, dir_name, '*.' + extension)print(file_glob)file_list.extend(glob.glob(file_glob))if not file_list:continueprint(len(file_list))
extensions = ['jpg', 'jpeg','JPG','JPEG']
这行代码在Linux下是没问题的,但是在Windows下运行是有问题的。
问题出现在下面的glob.glob()函数,里面的通配符匹配,在Windows下是不区分大小写的,而在Linux下是区分大小写的,所以在Linux下没这个问题。
但在Windows中,glob.glob()把*.jpg和*.jpeg的图片分别读取了两次(小写一次,大写一次),file_list自然的也增加了一倍的数据。
所以代码应该修改为:
extensions = ['jpg', 'jpeg'] # windows
在图片的预处理中,数据翻倍,会增加很多的时间,不仅如此,内存消耗也会增加很多,我在遇到这个坑的时候,16G内存也不够用,也白白浪费了很多时间。
glob.glob()的一个坑相关推荐
- glob.glob 函数读取文件
glob.glob(pathname) 返回所有匹配的文件路径列表.它只有一个参数 pathname,定义了文件路径匹配规则,这里可以是绝对路径,也可以是相对路径. 如当前路径下有文件如下: * 返回 ...
- python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 python 的标准库模块glob使用教程,主要为glob.glob函数使用与glob.iglob函数使用 文章目录: ...
- glob.glob() + os.path.join() :找到文件路径,拼接路径
1. glob方法: glob模块的主要方法就是glob,该方法返回所有匹配的文件路径列表(list):该方法需要一个参数用来指定匹配的路径字符串(字符串可以为绝对路径也可以为相对路径),其返回的文件 ...
- glob.glob()
glob.glob()函数 glob.glob()含有的内容非常少,其功能是查找符合特定规则的文件路径.例如(F:/Python/Hello). 功能类似于Windows的文件搜索. 查找文件只用到三 ...
- python之glob.glob
函数功能: 匹配所有的符合条件的文件,并将其以list的形式返回. glob.glob函数: glob模块被用来查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.glob.gl ...
- python glob.glob
前言 在做NLP数据预处理的时候,经常会遇一种情况(拿文本分类举例子):假设我们的文本有7类,正常情况下我们可以把所有的训练数据都写到一个文件中,然后将其对应的标签写到另一个文件中,但是有很多时候数据 ...
- python中 glob.glob
使用了下thrift,出现了一些路径问题.原来是glob.glob函数捣的鬼.所以扒了下英文文档,有些收获.下面分享. 函数功能:匹配所有的符合条件的文件,并将其以list的形式返回. 一.glob. ...
- glob模块中的glob.glob和golb.iglob
glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件只用到三个匹配符:"*", "?&quo ...
- python-基础语法-glob.glob()
参考声明:https://blog.csdn.net/lanchunhui/article/details/70170813 https://blog.csdn.net/lanchunhui/arti ...
最新文章
- python同步赋值原理,Python直接赋值及深浅拷贝原理详解
- jenkins-为什么要持续集成
- Java并发编程 Synchronized及其实现原理
- 产生线程安全的原因(2)(操作系统)
- linux shell之字符串的比较
- libevent网络编程例子(1)
- 【less-24】基于SQLI的二次注入
- python社区版如何下载库_pycharm社区版在哪里下载
- com线程模型实验之三
- 【Guava】基于guava的重试组件Guava-Retryer
- 昆仑通态触摸屏如何把参数由触摸屏传递到PLC_昆仑通态触摸屏的串口232通讯功能-----有谁用过?...
- Docker理论与实践(四)
- 海马玩模拟器 v0.7.2 官方版​
- 【转帖】计算机编程语言
- 使用二手书App的心得
- 淘宝直通车表格拖动时间段选择插件,纯手写80%还原
- 如何从0快速上线一个网站---详细
- CentOS 7 SVN的搭建和使用
- SpringBoot集成Redis报non null key required(已解决)
- Android 7.0+配置Burpsuite证书
热门文章
- 计算机指令的执行过程详解
- Soap Web Service和Rest
- 白话文带你了解 封装 继承 多态
- 初探mapbox地图可视化实例,带你看看家附近有多少咖啡馆
- 启动Microsoft Office时出现“无法验证该产品的许可证“Office 应用
- SLAM--PL-SLAM中基于线特征的初始化方法(LSD算法,LBD描述子,计算R和t)
- (39.2)【XXE漏洞专题】XXE原理、产生、检测、危害、利用、示例
- 【JavaScript】toString()和toLocalString()有何区别???
- java web漏洞_如何安全检测Java Web应用网站漏洞
- 梅科尔工作室-郜翱翔-鸿蒙笔记3