tft每日頭條

 > 科技

 > python數據入庫

python數據入庫

科技 更新时间:2024-11-20 10:42:39
前言

既然在Pathlib庫中提到了glob()函數,那麼我們就專門用一篇内容講解文件名的匹配。其實我們有專門的一個文件名匹配庫就叫:glob。

不過,glob庫的API非常小,但是僅僅應用于文件名的匹配綽綽有餘。隻要是在實際的項目中需要過濾,或者匹配一組文件,都可以使用該庫進行操作。

通配符星号(*)

話不多說,下面我們使用通配符來匹配文件名,示例如下:

import glob for name in sorted(glob.glob('text/*')): print(name)

運行之後,效果如下:

python數據入庫(glob庫Python文件名的匹配)1

這裡不僅用*通配符獲取了目錄下的所有文件,而且還對其進行了排序。

問号(?)

問号(?)是用來匹配單字的,比如我們賽選上面1開頭的圖片文件。示例如下:

import glob for name in glob.glob('text/1?.png'): print(name)

運行之後,效果如下:

python數據入庫(glob庫Python文件名的匹配)2

區間匹配([0-9][a-z][A-Z])

從上面兩個匹配我們看出來,glob庫的匹配規則與正則表達式有些相似。既然它能匹配模糊的,一個或多個字符,那麼肯定也可以匹配區間字符。

示例如下:

import glob for name in glob.glob('text/15[a-z].*'): print(name)

運行之後,效果如下:

python數據入庫(glob庫Python文件名的匹配)3

轉義元字符

當然,上面的文件名都是常規的文件名,都是用字母與數字組成的。但是,有些人比較怪,可能在文件名中包含了特殊的字符,比如上面的匹配字符“?*[”等。那怎麼辦呢?用反斜杠“\”轉義嗎?

其實,我們還有更簡單的,直接使用escape()函數進行操作。示例如下:

import glob escape_str='?*[]' for char in escape_str: pattern = 'text/*' glob.escape(char) '.png' for name in glob.glob(pattern): print(name)

運行之後,效果如下:

python數據入庫(glob庫Python文件名的匹配)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved