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")

rename.py

再次进行读取,发现达到预期结果

Fig 2

原文地址:https://www.cnblogs.com/jqpy1994/p/10925459.html

时间: 2024-11-06 19:38:30

python文件夹中文件读取踩坑的相关文章

C# 将文件夹中文件复制到另一个文件夹

C# 将文件夹中文件复制到另一个文件夹 //新建一个文件夹 var imgPath = Directory.GetCurrentDirectory() + "\\DevicePic1"; if (!Directory.Exists(imgPath)) { Directory.CreateDirectory(imgPath); } var a = picpath;//需要进行复制的图片的路径 var b= a.Substring(a.LastIndexOf('.'));//截取后缀名 v

使用IO流实现对特殊文件及文件夹中文件拷贝到指定文件中

本程序可以实现将自己指定的文件类型的文件拷贝到自己想放的文件中,比如一个文件夹中有很多文件,那么我们想把所有的TXT文件拷贝到自己指定的文件中.(靠背笔记) package com.blueZhang; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcept

C#实现对指定文件夹中文件按修改时间排序

string path = "~/Document/Introduction/团队管理制度/";            DirectoryInfo dirinfo = new DirectoryInfo(Server.MapPath(path));            FileInfo[] Files = dirinfo.GetFiles();            Array.Sort<FileInfo>(Files, new FIleLastTimeComparer(

使用java读取文件夹中文件的行数

使用java统计某文件夹下所有文件的行数 经理突然交代一个任务:要求统计某个文件夹下所有文件的行数.在网上查了一个多小时没有解决.后来心里不爽就决定自己写一个java类用来统计文件的行数,于是花了两个小时将代码写出(可见我的java功底还是挺烂的).虽然有很多有待改进的地方,依然有纪念意义. 本java类的核心是通过BufferedReader类的readLine()方法,间接的统计行数:通过递归遍历文件. 这个类只是写来完成任务的.结果不是很严谨,许多情况并没考虑到:比如判断想读取某一类文件怎

使用.NET统计文件夹中文件总数

软件下载: http://hovertree.com/h/bjaf/hwqtjwjs.htm 截图: 使用方法:点击按钮,选择文件夹,就可以显示文件夹中包含的文件总数. 这个项目包含在HoverTree解决方案中. 源码下载:http://hovertree.com/h/bjaf/cao15h74.htm 推荐:http://www.cnblogs.com/roucheng/p/yjcd.html

获得assets文件夹中文件内容

/** * @param fileName * @return assets中文件的字符串 */ public String getFromAssets(String fileName){ String result=""; try { InputStreamReader inputReader = new InputStreamReader( getResources().getAssets().open(fileName) ); BufferedReader bufReader =

static文件夹中文件引用方式,如html页面引用js

1 创建static文件夹,在项目下 2 index页面简单设置,红色 3 在settings页面配置最后添加,staticfiles_dirs,必须逗号结尾,引用用别名 原文地址:https://www.cnblogs.com/wfl9310/p/9397455.html

C#实现复制文件夹中文件到另一个文件夹的方法

private void CopyDir(string srcPath, string aimPath) { try { // 检查目标目录是否以目录分割字符结束如果不是则添加 if (aimPath[aimPath.Length - 1] != System.IO.Path.DirectorySeparatorChar) { aimPath += System.IO.Path.DirectorySeparatorChar; } // 判断目标目录是否存在如果不存在则新建 if (!System

python 语料处理(从文件夹中读取文件夹中文件,分词,去停用词,去单个字)

# -*- coding:utf8 -*- import os import jieba def splitSentence(inputFile): fin = open(inputFile, 'r') #以读的方式打开文件 global fout #以写得方式打开文件 #print fin global stop for eachLine in fin: #print eachLine line = eachLine.strip()#.decode('utf-8', 'ignore') #去除