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

前言

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

glob 套件

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

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

範例

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

import osimport glob# Create directoryos.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

glob — Unix style pathname pattern expansion

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章