IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python中实现读取与windows资源管理器中相同顺序文件,顺序排列 -> 正文阅读

[Python知识库]Python中实现读取与windows资源管理器中相同顺序文件,顺序排列

1.背景

  • 目前在做一个批量将图片插入ppt中的软件,所有的东西都已经写完了,功能也可以实现,但是做成的PPT页面非常混乱,与windows资源管理器中看到的顺序不一样。
  • 通过查阅了很多文章,大部分都是提取名称的后几个数字排序,复杂的是使用正则表达排序。
  • 经过调研可知,顺序混乱是由于使用os.listdir()读取文件夹下的文件,这个读取的结果是乱序的,使用sorted()排序针对简单的纯数字名称是可以实现的,网上很多相关代码可以参考。但是对于负责的须使用正则表达,但是正则表达针对不同的文件名规律有不同的写法。
  • 进一步调研,可以采用自然排序的方式,需调用第三方库natsort

2.操作流程

2.1 安装第三方库

pip install natsort -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com #从阿里云服务器获取第三方库

2.2 示例

代码示例

from natsort import ns, natsorted
import os

path = r"E:\code\picture2ppt"
list = os.listdir(path)
files = natsorted(list,alg=ns.PATH)
print(files)

Windows资源管理器中排列顺序:

在这里插入图片描述

输出结果

自然排序: ['t0.png', 't1.png', 't2.png', 't3.png', 't4.png', 't5.png', 't6.png', 't7.png', 't8.png', 't9A0.png', 't9B4.png', 't9C0.png', 't10.png', 't11A0.png', 't11B4.png', 't11C0.png', 't12A0.png', 't12B4.png', 't13A0.png', 't13B4.png', 't13C0.png', 't14A0.png', 't14B4.png', 't15A0.png', 't15B4.png', 't16A0.png', 't16B4.png', 't16C0.png', 't17.png', 't18A0.png', 't18A1.png', 't18B3.png', 't18B4.png', 't18C0.png', 't19.png', 't20A0.png', 't20A1.png', 't20B4.png', 't20C0.png', 't21A0.png', 't21B4.png', 't21C0.png', 't22A0.png', 't22A1.png', 't22B4.png', 't22C0.png', 't23A0.png', 't23B4.png', 't23C0.png', 't24A0.png', 't24B4.png', 't24C0.png', 't25A0.png', 't25B4.png', 't25C0.png', 't26A0.png', 't26B4.png', 't26C0.png', 't27.png', 't28.png', 't29A0.png', 't29A1.png', 't29B4.png', 't29C0.png', 't30A0.png', 't30A1.png', 't30B4.png', 't30C0.png', 't31A0.png', 't31B3.png', 't31B4.png', 't31C0.png', 't32A0.png', 't32B4.png', 't32C0.png', 't33A0.png', 't33B4.png', 't34A0.png', 't34A1.png', 't34B3.png', 't34B4.png', 't34C0.png', 't35A0.png', 't35B4.png', 't35C0.png', 't36A0.png', 't36B4.png', 't36C0.png', 't37A0.png', 't37B4.png', 't37C0.png', 't38.png']
随机排序: ['t0.png', 't1.png', 't10.png', 't11A0.png', 't11B4.png', 't11C0.png', 't12A0.png', 't12B4.png', 't13A0.png', 't13B4.png', 't13C0.png', 't14A0.png', 't14B4.png', 't15A0.png', 't15B4.png', 't16A0.png', 't16B4.png', 't16C0.png', 't17.png', 't18A0.png', 't18A1.png', 't18B3.png', 't18B4.png', 't18C0.png', 't19.png', 't2.png', 't20A0.png', 't20A1.png', 't20B4.png', 't20C0.png', 't21A0.png', 't21B4.png', 't21C0.png', 't22A0.png', 't22A1.png', 't22B4.png', 't22C0.png', 't23A0.png', 't23B4.png', 't23C0.png', 't24A0.png', 't24B4.png', 't24C0.png', 't25A0.png', 't25B4.png', 't25C0.png', 't26A0.png', 't26B4.png', 't26C0.png', 't27.png', 't28.png', 't29A0.png', 't29A1.png', 't29B4.png', 't29C0.png', 't3.png', 't30A0.png', 't30A1.png', 't30B4.png', 't30C0.png', 't31A0.png', 't31B3.png', 't31B4.png', 't31C0.png', 't32A0.png', 't32B4.png', 't32C0.png', 't33A0.png', 't33B4.png', 't34A0.png', 't34A1.png', 't34B3.png', 't34B4.png', 't34C0.png', 't35A0.png', 't35B4.png', 't35C0.png', 't36A0.png', 't36B4.png', 't36C0.png', 't37A0.png', 't37B4.png', 't37C0.png', 't38.png', 't4.png', 't5.png', 't6.png', 't7.png', 't8.png', 't9A0.png', 't9B4.png', 't9C0.png']

总结

可以看到结果是符合我们的需求的。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:27:16  更:2022-03-10 22:30:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 20:02:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计