標籤:
Python 標準庫的 glob 模組支援查詢匹配指定模式的檔案或目錄。這裡的模式使用的並不是Regex,而是通過萬用字元來匹配的 Unix 風格的路徑名擴充。
支援的萬用字元:
萬用字元 |
說明 |
* |
匹配任意個字元 |
? |
匹配一個字元 |
[] |
匹配括弧間的任一字元,可以使用 - 表示範圍 |
\ |
逸出字元,如用 \? 匹配 ? |
假設現在有一個名為 dir 的目錄,該目錄及其子目錄的結構如下:
├── dir│ ├── db.conf│ ├── dir1│ │ ├── hello-a.xml│ │ ├── hello-b.xml│ │ └── hello-d.xml│ ├── dir2│ │ ├── 2014│ │ └── 2015│ │ ├── 01.log│ │ ├── 02.log│ │ └── 03.log│ ├── f1.txt│ ├── f2.txt│ ├── f3.txt│ ├── foo.txt│ └── log.conf├── hello.py
glob_demo.py
import globprint glob.glob(‘dir/*‘)# [‘dir/f2.txt‘, ‘dir/dir2‘, ‘dir/f3.txt‘, ‘dir/f1.txt‘, ‘dir/foo.txt‘, ‘dir/dir1‘, ‘dir/db.conf‘, ‘dir/log.conf‘]print glob.glob(‘dir/dir1/hello-[a-c].xml‘)# [‘dir/dir1/hello-b.xml‘, ‘dir/dir1/hello-a.xml‘]print glob.glob(‘dir/dir2/*/[0-9]*.log‘)# [‘dir/dir2/2015/03.log‘, ‘dir/dir2/2015/01.log‘, ‘dir/dir2/2015/02.log‘]print glob.glob(‘dir/f?.txt‘)# [‘dir/f2.txt‘, ‘dir/f3.txt‘, ‘dir/f1.txt‘]print glob.glob(‘dir/*.conf‘)# [‘dir/db.conf‘, ‘dir/log.conf‘]
Python(2.7.6) glob - 匹配指定模式的檔案