python標準庫之glob模塊(詳細+舉例)

glob是python標準庫中用來處理文件和文件夾的模塊,其實該模塊的函數很少,有以下幾個:

1. glob.glob(pathname, *, recursive=False)

用來查找符合特定規則的文件名,提供的特徵符號爲*, ?[].

  • 輸入爲路徑
  • 輸出爲list類型
    舉例:
    當前文件夾列表爲:
.
├── 1.gif
├── 2.txt
├── card.gif
├── sub
│   └── 3.txt
└── test.py

1 directory, 5 files
import glob
# 當前文件夾下文件名在0-9之間,不限文件類型
print(glob.glob('./[0-9].*'))
# 所有.gif類型的文件
print(glob.glob('*.gif'))
# 名字長度爲1的,且類型爲.gif的文件
print(glob.glob('?.gif'))
# **代表..
print(glob.glob('**/*.txt', recursive=True))
print(glob.glob('./**/', recursive=True))
# 輸出
# ['./1.gif', './2.txt']
# ['1.gif', 'card.gif']
# ['1.gif']
# ['2.txt', 'sub/3.txt']
# ['./', './sub/']

2. glob.iglob(pathname, *, recursive=False)

與glob不同的是, iglob返回的是迭代器,
舉例:

import glob
path = glob.iglob('./[0-9].*')
print(path)
for i in path:
    print(i)
# 輸出爲
# <generator object _iglob at 0x7facf9f5b990>
# ./1.gif
# ./2.txt

3. glob.escape(pathname)

這會將特殊字符*, ?[]轉義,舉例:

import glob
print(glob.escape('./[0-9].*'))
# ./[[]0-9].[*]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章