小前言:

本人Python小白,因为最近想整理下近10几年的老照片,然后就有了写脚本批处理的想法。初始需求其实很简单,就是筛选自己想要的照片到指定文件夹,然后按照exif信息重命名照片为拍摄时间_拍摄设备.jpg,比如20180101_122334_E-M10.jpg代表的是2018年01月01日12点23分34秒用E-M10拍的照片。

这个算不上教程,不会全面地介绍某个库,只是我在折腾过程中的小摘要小想法,
如有错误请指出,如有疑问当然也欢迎留言相互讨论。


Glob库

这里从Glob库出发,遍历指定文件夹中jpg文件。Python官方文献:https://docs.python.org/3/library/glob.html

以py文件同目录下sample文件夹为例:
sample下有子文件夹sampleBackup, 3个jpg文件和1个txt文件;
sampleBackup含有2个jpg文件,如下图

sample文件夹结构

glob

glob.glob(pathname, *, recursive=False)

最简单的glob使用方法,遍历.sample路径下的所有jpg文件glob默认下是不会遍历子文件夹,recursive=False可省略

import globfor filepath in glob.glob(r".sample*.jpg"):    print(filepath)

运行结果:

.sampleP1020523.jpg.sampleP7200248-2.jpg.sampleP7200258-2.jpg

glob.glob(pathname, *, recursive=True)

如果需要一并查找n级目录下文件,则需要扩展路径,
这里以二级目录sampleBackup为例:

import globfor filepath in glob.glob(r".sample***.jpg", recursive = True):    print(filepath)

运行结果:

.sampleP1020523.jpg.sampleP7200248-2.jpg.sampleP7200258-2.jpg.samplesampleBackupP7200248-2.jpg.samplesampleBackupP7200258-2.jpg

iglob

iglob用法和glob相似,如果使用按照以上两个例子使用,输出结果是相同的。

import globprint("glob:")for filepath in glob.glob(r".sample*.jpg"):    print(filepath)print("-----------------------------------------------------------------")for filepath in glob.glob(r".sample***.jpg", recursive = True):    print(filepath)print("=================================================================")print("iglob:")for filepath in glob.iglob(r".sample*.jpg"):    print(filepath)print("-----------------------------------------------------------------")for filepath in glob.iglob(r".sample***.jpg", recursive = True):    print(filepath)print("=================================================================")

运行结果:

glob:.sampleP1020523.jpg.sampleP7200248-2.jpg.sampleP7200258-2.jpg-----------------------------------------------------------------.sampleP1020523.jpg.sampleP7200248-2.jpg.sampleP7200258-2.jpg.samplesampleBackupP7200248-2.jpg.samplesampleBackupP7200258-2.jpg=================================================================iglob:.sampleP1020523.jpg.sampleP7200248-2.jpg.sampleP7200258-2.jpg-----------------------------------------------------------------.sampleP1020523.jpg.sampleP7200248-2.jpg.sampleP7200258-2.jpg.samplesampleBackupP7200248-2.jpg.samplesampleBackupP7200258-2.jpg=================================================================

iglob和glob的区别

glob把遍历到的结果存储到一个list里,而iglob则是一个generator object

print("glob:")globContent = glob.glob(r".sample*.jpg")print(type(globContent), globContent)for content in globContent:    print(content)print("=================================================================")print("iglob:")iglobContent = glob.iglob(r".sample*.jpg")print(type(iglobContent), iglobContent)for content in iglobContent:    print(content)print("=================================================================")

运行结果:

glob: ['.sampleP1020523.jpg', '.sampleP7200248-2.jpg', '.sampleP7200258-2.jpg'].sampleP1020523.jpg.sampleP7200248-2.jpg.sampleP7200258-2.jpg=================================================================iglob:.sampleP1020523.jpg.sampleP7200248-2.jpg.sampleP7200258-2.jpg=================================================================

python 文件路径_「按需学Python」 1. Glob库遍历路径/文件相关推荐

  1. python的glob库_【按需学Python】 1. Glob库遍历路径/文件

    小前言(请跳过): 本人Python小白,因为最近想整理下近10几年的老照片,然后就有了用脚本批处理照片的想法. 初始需求其实很简单,就是筛选自己想要的照片到指定文件夹,然后按照exif信息重命名照片 ...

  2. python文件编译_我算是白学Python了,现在才知道原来Python是可以编译的

    斌哥说 大家好,我是斌哥. 一说起Python,可能开发者第一时间想到的就是:"Python是一门能快速开发的解释型语言". 没错,Python确实是一门解释型的语言,而对比Jav ...

  3. python seo编程_「SEO及应用编程」开课!

    一.「SEO及应用编程」课程大纲,请见: SEO应用编程大纲​www.edrawsoft.cn 二.授课内容简介 两个模块:「SEO套路」和「SEO应用编程」 「SEO套路」模块,分 "域名 ...

  4. python array赋值_从踩坑学Python内部原理(5):执行时机的差异

    (给Python开发者加星标,提升Python技能) 英文:Satwik Kansal,翻译:暮晨 Python开发者整理自 GitHub [导读]:Python 是一个设计优美的解释型高级语言,它提 ...

  5. python对象模型映射_看例子,学 Python(三)

    看例子,学 Python(三) 包 创建一个目录 myutil,把 mymath.py 挪到里面,再添加一个空文件 __init__.py: myutil/ __init__.py mymath.py ...

  6. python头文件库_跟老齐学Python之不要红头文件(1)

    这两天身体不给力,拖欠了每天发讲座的约定,看官见谅. 红头文件,是某国特别色的东西,在python里不需要,python里要处理的是计算机中的文件,包括文本的.图片的.音频的.视频的等等,还有不少没见 ...

  7. python实验室怎么样_跟老齐学Python之一个免费的实验室

    在学生时代,就羡慕实验室,老师在里面可以鼓捣各种有意思的东西.上大学的时候,终于有机会在实验室做大量实验了,因为我是物理系,并且,遇到了一位非常令我尊敬的老师--高老师,让我在他的实验室里面,把所有已 ...

  8. python菜鸟入门_值得收藏|菜鸟学Python【入门文章大全】

    这是菜鸟学Python的第106篇原创文章 阅读本文大概需要3分钟 菜鸟学python已经写了好多好多文章,我自己也没有想到能写这么多累计已经有110篇了,从入门篇写到了数据篇. 我觉得还有好多绝招, ...

  9. 跟老齐学python轻松入门_跟老齐学Python 轻松入门 中文pdf_Python教程

    资源名称:跟老齐学Python 轻松入门 中文pdf 第0章 预备 1第1章 基本对象类型 13第2章 语句和文件 100第3章 函数 145第4章 类 181第5章 错误和异常 233第6章 模块 ...

最新文章

  1. 风控算法最常见的知识WOE讲解!
  2. 我在亦庄见了说中文的爱因斯坦,会比心的熊猫,还有一场意念打字大赛
  3. Python中关于‘self’的种种用法笔记
  4. SDN第五次上机作业
  5. 不区分大小写的内容比较
  6. 静态变量加载时间,静态代码块加载时间
  7. python3.7不能用_解决Python3.7.0 SSL低版本导致Pip无法使用问题
  8. SQL Server初探
  9. Cocos2d-x编程中的runOnUiThread方法和runOnGLThread方法剖析
  10. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_6_等待唤醒机制概述...
  11. android模糊搜索文件,模糊搜索_八门神器教程|安卓八门神器怎么用图文教程__单机攻略_跑跑车单机游戏网...
  12. 163发送邮件服务器拒收,向网易163邮箱发信常见退信说明
  13. 水经注地图发布服务的安装与卸载
  14. CC2530按键控制呼吸灯
  15. 在idea中一键部署项目到Docker及CA认证
  16. 携程网创始人季琦:互联网已不再有机会(转)
  17. 用友NC 用户名登录设置步骤
  18. 金属非金属如何去毛刺 机器人浮动去毛刺
  19. 怎么制作游戏脚本_我应该怎么样来推荐我们制作的这款RPG游戏呢?
  20. TOM在线公布二零零六年全年净利润2866万美元

热门文章

  1. 如何写出一份优秀的软件设计文档
  2. 一文揭秘微服务架构统一安全认证设计与实践!
  3. 19 条 MySQL 技巧,效率至少提高 3倍!
  4. 只看到了别人28岁退休,背后的期权知识你知道吗?
  5. 四面阿里看看你都会吗
  6. 美团社招Java开发一面,二面,三面,四面合并面经
  7. 记录一次生产环境下的jvm内存泄露问题和分析解决过程!
  8. 如何让Git适应敏捷开发流程?
  9. 高效工作,分享几个实用的小诀窍,很多人已经悄悄用上了
  10. 【硅谷牛仔】优步CEO,最倒霉的成功创业者 -- 特拉维斯·卡兰尼克