python 好用套件:利用 glob 抓取路径下档案名称

前言

今天这篇文章要分享我自己在抓取某个路径下所有档案时,很喜欢用的一个套件,觉得它使用弹性满高,有满好理解的!自从知道有这个套件後,之後抓档名都没有换过其他方式了 XD

glob 套件

根据官方文档,有这三种用法:
glob.glob(pathname, *, recursive=False)
glob.iglob(pathname, *, recursive=False)
glob.escape(pathname)

这边只先介绍 glob.glob,其他应用有需要时可以再延伸研究

范例

1. 首先,为了示范方便,先来建立一些资料夹

import os
import glob

# Create directory
os.mkdir(os.path.join("Folder_1")
os.mkdir(os.path.join("Folder_1", "File_1.txt"))
os.mkdir(os.path.join("Folder_1", "File_2.csv"))
os.mkdir(os.path.join("Folder_1", "File_3.txt"))

# 备注:这边其实都是建立资料夹,只是为了示范用,所以加上档名,实际上并非档案

2. 试着利用 glob.glob 来读取档案路径

先来解释一下,参数 pathname 用到的一些符号:

  • * 的意思就是匹配所有的内容
  • 可以自己设定要读什麽档案类型,像是:.txt, .csv
  • 也可以再进一步针对档名的变化设定,像是:[1-2] 就是匹配 1 到 2 之间的整数数值

延伸学习:如何使用正规表达式

# Find pathnames under the specified directory 

# 取得 Folder_1 这层里面,所有东西的路径
print(glob.glob(os.path.join("Folder_1", "*"))) 

# 取得 Folder_1 这层里面,结尾是 .txt 的路径
print(glob.glob(os.path.join("Folder_1", "*.txt")))

# 取得 Folder_1 这层里面,结尾是 .csv 的路径
print(glob.glob(os.path.join("Folder_1", "*.csv")))

# 取得 Folder_1 这层里面,档名中有 1 或 2 的东西的路径
print(glob.glob(os.path.join("Folder_1", "*[1-2]*")))


# 备注
# 这边利用 os.path.join 来连接指定字串形成路径,因为不同系统下的分隔符号可能不同
# 可以用 os.sep 来查看,在设定路径时,也直接用符合的分隔符号来串连

输出:

['Folder_1/File_1.txt', 'Folder_1/File_3.txt', 'Folder_1/File_2.csv']
['Folder_1/File_1.txt', 'Folder_1/File_3.txt']
['Folder_1/File_2.csv']
['Folder_1/File_1.txt', 'Folder_1/File_2.csv']

结语

透过 glob.glob 结合正规表达式,就可以轻松的特定一些筛选条件,抓出想要的档案路径

References


<<:  Day 11 - 边框使用方式

>>:  Day 0x1 - 动机、目标、目录 (消费支付API)

D17 - 如何用 Apps Script 自动化地创造与客制 Google Docs?(四)Element 的删除与层级关系

今天的目标 要怎麽简单快速地做出客制化地文件?今天,我们会教用 GAS 搭配 Goolge Doc。...

Day23-这不是火腿 helm介绍

当你的k8s系统越来越大,当中各种pod的设定也会越来越多,如果又要分成开发 测试以及正式上线的版本...

第41天~这里就是把我觉得不错的范例来练习一下

这篇的上一篇:https://ithelp.ithome.com.tw/articles/10283...

Day6|【Git】提交档案给 Git 控管 - git status 、 git add 指令

接下来让我们开始熟悉 Git 的操作流程。 使用 Git 的时候,我们会常看见以下四个指令: git...

[Day-3] 我的第一个C++程序

今天我要来记录我的第一个C++程序 上次介绍了Dev C++如何使用、建档以及C++的基本架构 如下...