zoukankan      html  css  js  c++  java
  • python——os.listdir 排序乱序问题

    ---恢复内容开始---

    今天编写代码遇到了问题,读取一个文件夹下的文件时,文件乱序,没有按自己想要的顺序输出,然后百度了一下,虽然已解决,但没有彻底解决。

    刚开始的输出文件顺序:【备注共有96个文件,我只输出前五项】

    ['real-mask-ro-10b-20170402194753-0-83297987.fit',
    'real-mask-ro-16b-20170402201432-2-83298014.fit',
    'real-mask-ro-13r-20170402201432-2-83298014.fit',
    'real-mask-ro-16r-20170402201432-2-83298014.fit',
    'real-mask-ro-16r-20170402194753-0-83297987.fit',
    'real-mask-ro-09b-20170402201432-2-83298014.fit',]

    对于ro-后的数字进行排序:

    采用的代码:

    dir ='F:/Home_01/'#当前目录
    filenames=os.listdir(dir)#filenames存储dir下的所有文件名。
    filenames=os.listdir(dir)
    filenames.sort(key=lambda x:int(x[13:15]))#以字符串的第14到16位的数字从小到大排序  

     结果:

    ['real-mask-ro-01b-20170402194753-0-83297987.fit',
    'real-mask-ro-01r-20170402201432-2-83298014.fit',
    'real-mask-ro-01b-20170402200113-1-83298001.fit',
    'real-mask-ro-01r-20170402200113-1-83298001.fit',
    'real-mask-ro-01b-20170402201432-2-83298014.fit',
    'real-mask-ro-01r-20170402194753-0-83297987.fit']

    我想要的结果是01b一起输出,然后尝试默认排序,采用代码:

    filenames.sort()
    

    结果:

    ['real-mask-ro-01b-20170402194753-0-83297987.fit',
    'real-mask-ro-01b-20170402200113-1-83298001.fit',
    'real-mask-ro-01b-20170402201432-2-83298014.fit',
    'real-mask-ro-01r-20170402194753-0-83297987.fit',
    'real-mask-ro-01r-20170402200113-1-83298001.fit',
    'real-mask-ro-01r-20170402201432-2-83298014.fit']

  • 相关阅读:
    Nodejs读取文件时相对路径的正确写法(使用fs模块)
    node 读取多个文件、合并多个文件、读写多个文件
    js中typeof用法详细介绍
    express源码分析之Router
    14 Django的用户认证组件
    13-1 jquery操作cookie
    13 Django组件- cookie与session
    12 Django组件-form组件
    11 Django组件-分页器
    10 Django与Ajax
  • 原文地址:https://www.cnblogs.com/gegemu/p/10468997.html
Copyright © 2011-2022 走看看