python文件夹中文件读取踩坑
Q:
进行数据集图片预处理时,初始命名如下图(Fig1左),发现读取文件时,读取的结构并非如所设想的那样顺序读取

Fig 1
A:
pyhton读取文件的时候,按照文件名的ascii码中的顺序进行逐位排序,于是编写以下代码,更改命名规则,程序如下
# -*- coding:utf-8 -*-
# ------------------------------
# @Time :2019/5/26 10:55
# @Author :jonie
# @Email :xxxxx@xx.com
# @File :重命名.py
# Description:实现形如"类名_000x.jpg"的命名方式
# ------------------------------
import os
def re_name(path_name):
num = 0
for dir_image in os.listdir(path_name): # os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表
# print(dir_image)
full_path = os.path.abspath(os.path.join(path_name, dir_image))
# print(full_path) if os.path.isdir(full_path): # 如果是文件夹,继续递归调用
if not os.path.exists(os.path.join(r"D:\Jonie_Project_scc15\dataset\scene_categories",dir_image)):
os.makedirs(os.path.join(r"D:\Jonie_Project_scc15\dataset\scene_categories",dir_image))
# print(os.path.join(r"D:\Jonie_Project_ot8\data1\scene_categories",dir_image))
print("isdir")
re_name(full_path)
# print(full_path)
else: # 如果是文件了
# pass
# print(dir_image)
# print(full_path)
if dir_image.endswith('.jpg'):
cla=full_path.split('\\')[-2]
image_name = '%s_%04d.jpg' % (cla, num) # 注意这里图片名一定要加上扩展名,否则后面imwrite的时候会报错
image_name =os.path.join("D:\Jonie_Project_scc15","dataset\scene_categories",cla,image_name)
oldname=os.path.join("D:\Jonie_Project_scc15","dataset\scene_categories",cla,image_name)
# print(image_name)
print(full_path)
os.rename(full_path, image_name)
num = num + 1
if __name__ == '__main__':
re_name(r"D:\Jonie_Project_scc15\dataset\scene_categories")
rename.py
再次进行读取,发现达到预期结果

Fig 2
python文件夹中文件读取踩坑的更多相关文章
- Python按顺序读取文件夹中文件
参考资料: https://blog.csdn.net/qq_22227123/article/details/79903116 https://blog.csdn.net/merdy_xi/arti ...
- python批量处理文件夹中文件的问题
用os模块读取文件夹中文件 原来的代码: import osfrom scipy.misc import imread filenames=os.listdir(r'./unprocess')for ...
- C# 将文件夹中文件复制到另一个文件夹
p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...
- php获取指定文件夹中文件名称
/** * php获取指定文件夹中文件名称 * @author jackie <2018.10.10> */ public static function getFileName($fil ...
- Python之获取文件夹中文件列表以及glob与fnmatch模块的使用
获取文件夹中的文件列表 print(os.listdir("../secondPackage")) # ['__init__.py', 'secondCookBook.py', ' ...
- C#实现对指定文件夹中文件按修改时间排序
string path = "~/Document/Introduction/团队管理制度/"; DirectoryInfo dirinfo = new Di ...
- 【linux】复制文件夹中文件,排除部分文件
如下 cp `ls|grep -v -E '*json|out'|xargs` /home/data/ 用grep -v 表示排除, -E 表示正则 ls|grep -v -E '*json|out ...
- Java访问文件夹中文件的递归遍历代码Demo
上代码: import java.io.File; /* * 需求:对指定目录进行所有内容的列出(包含子目录中的内容) * 也可以理解为 深度遍历. */ public class FindAllFi ...
- 使用java读取文件夹中文件的行数
使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个 ...
随机推荐
- JAVA8学习——深入浅出函数式接口FunctionInterface(学习过程)
函数式接口 函数式接口详解:FunctionInterface接口 话不多说,先打开源码,查阅一番.寻得FunctionInterface接口 package java.util.function; ...
- xshell连接不上ubuntu---could not connect to 'ip' (port 22): Connection failed.
可能是没有开启ssh server,接下来就是开启服务就好.命令如下: sudo apt-get install openssh-server 这样就OK啦
- 【题解】BZOJ5093图的价值(二项式+NTT)
[题解]BZOJ5093图的价值(二项式+NTT) 今天才做这道题,是我太弱了 强烈吐槽c++这种垃圾语言tmd数组越界不re反倒去别的数组里搞事情我只想说QAQ 推了一张A4纸的式子 考虑每个点的度 ...
- spring之通过注解方式配置Bean(一)
(1)组件扫描:spring能够从classpath下自动扫描.侦测和实例化具有特定注解的组件. (2)特定组件包括: @Component:基本注解,标识一个受spring管理的组件: @Respo ...
- HDU3709 Balanced Number 题解 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3709 题目大意: 求区间 \([x, y]\) 范围内"平衡数"的数量. 所谓平衡 ...
- list的基本方法
数据类型列表 列表的创建 使用[ ]创建列表,元素之间使用逗号隔开, list()创建列表 列表添加新的元素 list.append() 在list末尾增加一个元素 list.insert(n, &q ...
- 小小知识点(二十六)关于5G发展的28个核心问题,来自华为内部的深度解读
本文来自微信公众号“腾讯深网”(ID:qqshenwang),作者 马关夏.36氪经授权转载. 一.5G先进性与行业应用 1.5G到底是什么?和4G比有什么不一样? 从国际电信联盟(ITU)的定义来看 ...
- 《图解机器学习-杉山将著》读书笔记---CH1
CH1 什么是机器学习 重点提炼 机器学习的种类: 常分为:监督学习.无监督学习.强化学习等 监督学习是学生从老师那获得知识,老师提供对错指示 无监督学习是在没有老师的情况下,学生自习 强化学习是在没 ...
- 【转】ArcGIS Server 站点架构-Web Adaptor
GIS 服务器内置了Web服务器,如果我想用我自己企业内部的服务器,该怎么做? 多个GIS服务器集群又如何做? …… 有问题,说明我们在思考,这也是我们希望看到的,因为只有不断的思考,不断的问自己为什 ...
- 数据库的SQL基本用法 创建 删除 查询 修改
1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname 3.说明:备份sql server--- 创建 备份数据的 ...