今天这篇文章要分享我自己在抓取某个路径下所有档案时,很喜欢用的一个套件,觉得它使用弹性满高,有满好理解的!自从知道有这个套件後,之後抓档名都没有换过其他方式了 XD
根据官方文档,有这三种用法:
glob.glob(pathname, *, recursive=False)
glob.iglob(pathname, *, recursive=False)
glob.escape(pathname)
这边只先介绍 glob.glob,其他应用有需要时可以再延伸研究
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"))
# 备注:这边其实都是建立资料夹,只是为了示范用,所以加上档名,实际上并非档案
先来解释一下,参数 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
结合正规表达式
,就可以轻松的特定一些筛选条件,抓出想要的档案路径
>>: Day 0x1 - 动机、目标、目录 (消费支付API)
今天的目标 要怎麽简单快速地做出客制化地文件?今天,我们会教用 GAS 搭配 Goolge Doc。...
当你的k8s系统越来越大,当中各种pod的设定也会越来越多,如果又要分成开发 测试以及正式上线的版本...
这篇的上一篇:https://ithelp.ithome.com.tw/articles/10283...
接下来让我们开始熟悉 Git 的操作流程。 使用 Git 的时候,我们会常看见以下四个指令: git...
今天我要来记录我的第一个C++程序 上次介绍了Dev C++如何使用、建档以及C++的基本架构 如下...