• 批量提取图片文件名使用Python中os.listdir( )函数时出现文件名乱序,非预想排序的解决方法


    想大批量提取文件图片名,提取出来保存到.txt文件中,提取方法有很多,但是多数方法提取出来之后,图片名是乱序的,不是我们自己预想的顺序排列。我自也试了一些方法,总结如下。

    方法一 dos命令窗口直接提取法

    这种方法先Win + R,输入cmd打开dos命令窗口,依次输入指令进入到图片文件夹下,具体见下:

    在这里插入图片描述

    运行后的结果见下:

    在这里插入图片描述
    这种方法提取出来的图片名称就是乱序的。

    方法二 调用sort()排序法

    这种方法参考了另外一位博主提供的方法,总结的很好,博主的链接为:添加链接描述
    在这里插入图片描述

    我自己也跟着尝试了,可以按顺序提取出图片名,代码及结果见下:

    import numpy as np
    import os
    
    picturePath = './database/INF2True_Tree/trainA'
    savePath = "./datasets/metas/INF2True_Tree/1/at_A_trian2.txt"    # 图片名提取出来后存放的路径 savePath = './pictures/at.txt'  #读取图片的名字,保存到txt文件
    file_txt = open(savePath,'w')   #打开文件,开始文件不存在,当运行这条语句后,会在pictures文件夹里生成txt文件
    fileName = os.listdir(picturePath)   ## 遍历文件夹中的图片名
    fileName.sort(key=lambda x:int(x[:-4]))   # 倒着数第四位'.'为分界线,按照‘.’左边的数字从小到大排序
    
    for fi in fileName:
        if fi.endswith(".jpg"):     #文件是以jpg结尾的
            file_txt.write(fi + '\n')  # 把文件存入指定的文件夹,存入的内容为图片的名字+每个图片的第三个字符
            print(fi)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    方法三 调用natsort库法

    我自己根据网上提供的资料,总结了下面的写法,可以按照顺序提取图片名,具体代码见下:

    import os
    import natsort
    
    picturePath = './database/INF2True_Tree/trainA'                  # 图片文件的路径
    savePath = "./datasets/metas/INF2True_Tree/1/at_A_trian1.txt"    # 图片名提取出来后存放的路径 savePath = './pictures/at.txt'  #读取图片的名字,保存到txt文件
    file_txt = open(savePath,'w')   #打开文件,开始文件不存在,当运行这条语句后,会在pictures文件夹里生成txt文件
    
    fileName = os.listdir(picturePath)           # 遍历文件夹中的图片名
    fileName_sort =natsort.natsorted(fileName)   # 使用natsort库对文件名排序
    
    for fi in fileName_sort:                     # 用for循环遍历排序后的文件名
        if fi.endswith(".jpg"):                  # 如果文件是以jpg结尾的
                file_txt.write(fi +'\n')         # 把文件存入指定的文件夹,存入的内容为图片的名字+每个图片的第三个字符
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    具体实现效果见下:

    在这里插入图片描述

    总结

    以上就是批量提取图片文件名使用Python中os.listdir( )函数时出现文件名乱序,非预想排序的解决方法,方法二和方法三都可以较好的实现按顺序提取图片名,学者自行选择。希望我总结的教程能帮助到你,多多支持,谢谢!

  • 相关阅读:
    JAVA接入OPC DA2.0引发的问题
    Kickstarter众筹是什么流程
    【Spring】从面向对象再到面向切面
    接口设计与优化
    用友GRP-U8 SQL注入漏洞复现
    mycat分库分表实战
    实验六 移位寄存器的设计【Verilog】
    CF1473C No More Inversions
    LLM-文本分块(langchain)与向量化(阿里云DashVector)存储,嵌入LLM实践
    JavaScript实现在HTML中的粒子文字特效
  • 原文地址:https://blog.csdn.net/qq_40280673/article/details/126779561