App下載

python怎么使用glob檢索文件

猿友 2021-07-27 10:13:28 瀏覽數(shù) (2570)
反饋

很多小伙伴都用過(guò)Windows的文件檢索功能,其實(shí)python也提供了文件檢索的功能。python自帶了一個(gè)文件操作相關(guān)模塊叫g(shù)lob,python可以使用glob健碩文件。接下來(lái)就讓我們來(lái)看一看python使用glob檢索文件要怎么操作吧。

一、檢索當(dāng)前目錄下所有文件、文件夾

from glob import glob
glob('./*')
Output: ['./0a.wav', './aaa', './1b.wav', './1a.wav', './0b.wav'] #返回一個(gè)list

二、檢索當(dāng)前目錄下指定后綴名文件

假設(shè)我們需要獲取當(dāng)前文件夾下所有后綴名為".wav"的文件,

from glob import glob
glob('./*.wav')
Output: ['./0a.wav', './1b.wav', './1a.wav', './0b.wav'] #返回一個(gè)包含".wav"文件路徑的list

二、檢索當(dāng)前目錄下包含指定字符文件

假設(shè)我們需要獲得所有包含"a"字符的".wav"文件,

from glob import glob
glob('./*a*.wav')
Output: ['./0a.wav', './1a.wav'] #返回一個(gè)包含".wav"文件路徑的list

補(bǔ)充:Python 中的glob模塊使用筆記(用它來(lái)遍歷文件夾、文件真的很方便)

glob模塊簡(jiǎn)介

glob是python自己帶的一個(gè)文件操作相關(guān)模塊,用它可以查找符合自己目的的文件,就類似于Windows下的文件搜索,支持通配符操作。

glob中支持的通配符有三種:

‘*' 匹配0個(gè)或多個(gè)字符
‘?' 僅匹配一個(gè)字符
‘[]' 匹配指定范圍內(nèi)的字符,如[0-9]匹配數(shù)字

用圖片中的文件夾作為例子進(jìn)行演示

案例

一、glob.glob的使用:

該方法返回所有匹配的文件路徑列表。

該方法需要一個(gè)參數(shù)用來(lái)指定要匹配的文件路徑(字符串類型)絕對(duì)路徑、相對(duì)路徑。

1.匹配某指定路徑下后綴為.exe的文件(絕對(duì)路徑)

In:
from glob import glob

file = glob(r'D:masm*.EXE')
print(type(file))
print(file)

Out:
<class 'list'>
['D:\masm\CREF.EXE', 'D:\masm\debug.exe',
 'D:\masm\DEBUG32.EXE', 'D:\masm\ERROUT.EXE',
  'D:\masm\EXEMOD.EXE', 'D:\masm\EXEPACK.EXE',
   'D:\masm\LIB.EXE', 'D:\masm\LINK.EXE',
    'D:\masm\MASM.EXE', 'D:\masm\SETENV.EXE',
     'D:\masm\TEST2.EXE', 'D:\masm\TEST3.EXE',
      'D:\masm\TEST4.EXE', 'D:\masm\TEST5.EXE',
       'D:\masm\TEST6.EXE']

2.匹配某指定路徑下的所有文件(絕對(duì)路徑)

In:
from glob import glob

file = glob(r'D:masm**')
print(type(file))
print(file)

Out:
<class 'list'>
['D:\masm\work\hello.asm', 'D:\masm\work\HELLO.OBJ',
 'D:\masm\work\test1.asm', 'D:\masm\work\TEST1.OBJ',
  'D:\masm\work\test2.asm', 'D:\masm\work\TEST2.OBJ', 
  'D:\masm\work\test3.asm', 'D:\masm\work\TEST3.OBJ',
   'D:\masm\work\test4.asm', 'D:\masm\work\TEST4.OBJ', 
   'D:\masm\work\two']

3.使用相對(duì)路徑來(lái)進(jìn)行匹配

'.' 指代當(dāng)前目錄

'. . ' 指代當(dāng)前目錄的上一級(jí)目錄

In:
from glob import glob

file = glob(r'..*')
print(type(file))
print(file)

Out:
<class 'list'>
['..\12306', '..\Auto connection school network', '..\cache', 
'..\class', '..\exercise_1.py', '..\exercise_2-2.py', 
'..\exercise_2-3.py', '..\exercise_2.py', '..\regular',
 '..\taobao', '..\test.py', '..\testglob', '..\UDPClient']

運(yùn)行

二、glob.iglob的使用

獲取一個(gè)生成器( generator)對(duì)象,使用它可以逐個(gè)獲取匹配的文件路徑名。與glob.glob()的區(qū)別是:glob.glob同時(shí)獲取所有的匹配路徑,而 glob.iglob一次只獲取一個(gè)匹配路徑。

In:
from glob import iglob

file = iglob(r'..*.py')
print(type(file))
print(file)

n=0
for i in file:
    n=n+1
    print(str(n),i)
Out:
<class 'generator'>
<generator object _iglob at 0x000001AEBE4D3B10>
1 ..exercise_1.py
2 ..exercise_2-2.py
3 ..exercise_2-3.py
4 ..exercise_2.py
5 ..	est.py

通過(guò)示例中的for循環(huán)可以看到,生成器對(duì)象會(huì)依次給出要匹配路徑下的文件。

以上就是python使用glob檢索文件的全部?jī)?nèi)容了,更多Python學(xué)習(xí)資料請(qǐng)關(guān)注W3Cschool其它相關(guān)文章!


0 人點(diǎn)贊