python文件夹中文件读取踩坑
Posted jqpy1994
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python文件夹中文件读取踩坑相关的知识,希望对你有一定的参考价值。
Q:
进行数据集图片预处理时,初始命名如下图(Fig1左),发现读取文件时,读取的结构并非如所设想的那样顺序读取
Fig 1
A:
pyhton读取文件的时候,按照文件名的ascii码中的顺序进行逐位排序,于是编写以下代码,更改命名规则,程序如下
1 # -*- coding:utf-8 -*- 2 # ------------------------------ 3 # @Time :2019/5/26 10:55 4 # @Author :jonie 5 # @Email :[email protected] 6 # @File :重命名.py 7 # Description:实现形如"类名_000x.jpg"的命名方式 8 # ------------------------------ 9 import os 10 def re_name(path_name): 11 num = 0 12 for dir_image in os.listdir(path_name): # os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表 13 # print(dir_image) 14 full_path = os.path.abspath(os.path.join(path_name, dir_image)) 15 # print(full_path) 16 17 if os.path.isdir(full_path): # 如果是文件夹,继续递归调用 18 if not os.path.exists(os.path.join(r"D:\\Jonie_Project_scc15\\dataset\\scene_categories",dir_image)): 19 os.makedirs(os.path.join(r"D:\\Jonie_Project_scc15\\dataset\\scene_categories",dir_image)) 20 # print(os.path.join(r"D:\\Jonie_Project_ot8\\data1\\scene_categories",dir_image)) 21 print("isdir") 22 re_name(full_path) 23 # print(full_path) 24 else: # 如果是文件了 25 # pass 26 # print(dir_image) 27 # print(full_path) 28 if dir_image.endswith(‘.jpg‘): 29 cla=full_path.split(‘\\\\‘)[-2] 30 image_name = ‘%s_%04d.jpg‘ % (cla, num) # 注意这里图片名一定要加上扩展名,否则后面imwrite的时候会报错 31 image_name =os.path.join("D:\\Jonie_Project_scc15","dataset\\scene_categories",cla,image_name) 32 oldname=os.path.join("D:\\Jonie_Project_scc15","dataset\\scene_categories",cla,image_name) 33 # print(image_name) 34 print(full_path) 35 os.rename(full_path, image_name) 36 num = num + 1 37 if __name__ == ‘__main__‘: 38 re_name(r"D:\\Jonie_Project_scc15\\dataset\\scene_categories")
再次进行读取,发现达到预期结果
Fig 2
以上是关于python文件夹中文件读取踩坑的主要内容,如果未能解决你的问题,请参考以下文章
在Pyspark中使用时,具有静态文件依赖性的python包无法读取静态文件
我在哪里更改此 Python 代码片段以将临时文件保存在 tmp 文件夹中?
Python打包工具Pyintealler打包py文件为windows exe文件过程及踩坑记录+实战例子