日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python:glob模块

發(fā)布時間:2025/3/21 python 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python:glob模块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

glob是python自己帶的一個文件操作相關(guān)模塊,用它可以查找符合自己目的的文件,就類似于Windows下的文件搜索,支持通配符操作(*? ?? []),*代表0個或多個字符,?代表一個字符,[]匹配指定范圍內(nèi)的字符,如[0-9]匹配數(shù)字。

1. glob模塊通配符

通配符功能
*匹配0或多個字符
**匹配所有文件,目錄,子目錄和子目錄里面的文件 (3.5版本新增)
匹配一個字符,這里與正則表達(dá)式? (正則?匹配前面表達(dá)式0次或者1次)
[]匹配指定范圍內(nèi)的字符,如: [1-9]匹配1至9內(nèi)的字符
[!]匹配不在指定范圍內(nèi)的字符

單字通配符?,當(dāng)前路徑文件下以file開頭后有一個字符的py文件

for fname in glob.glob("./file?.py"):print(fname)

范圍通配符[],當(dāng)前路徑文件下以file開頭后一個數(shù)字符的py文件

for fname in glob.glob("./file[0-9].py"):print(fname)

范圍通配符[],當(dāng)前路徑文件下以file開頭后一個非數(shù)字符的py文件

for fname in glob.glob("./file[!0-9].py"):print(fname)

2. glob()方法

glob模塊的主要方法是glob(),該方法返回所有匹配的文件路徑列表,該方法需要一個參數(shù)用來指定匹配的路徑字符串(本字符串可以為絕對路徑也可以為相對路徑);返回值:返回的文件名只包括當(dāng)前目錄里的文件名,不包括子文件夾里的文件。

比如:

import glob# 絕對路徑: glob.glob(r'c:\*.txt')? ? ? ? ? ? # 獲得C盤下的所有txt文件 glob.glob(r'E:\pic\*\*.jpg')? ? ? # 獲得指定目錄下的所有jpg文件# 相對路徑: glob.glob(r'../*.py')# 通配符 glob.glob('./[0-9].*') # ['./1.gif', './2.txt']glob.glob('*.gif') # ['1.gif', 'card.gif']glob.glob('?.gif') # ['1.gif']

官方說明:

glob.glob(pathname)

Return a possibly-empty list of path names that match?pathname, which must be a string containing a path specification.?pathname?can be either absolute (like?/usr/src/Python-1.5/Makefile) or relative (like?http://www.cnblogs.com/Tools/*/*.gif), and can contain shell-style wildcards. Broken symlinks are included in the results (as in the shell).

3. iglob()方法

使用iglob(),返回迭代器iterator效率更高。獲取一個可編歷對象,使用它可以逐個獲取匹配的文件路徑名。

與glob.glob()的區(qū)別是:glob.glob()同時獲取所有的匹配路徑,而 glob.iglob()一次只獲取一個匹配路徑。這有點類似于.NET中操作數(shù)據(jù)庫用到的DataSet與DataReader。下面是一個簡單的例子:

# 父目錄中的.py文件 f = glob.iglob(r'../*.py')print(f)? ? ? # <generator object iglob at 0x00B9FF80>for py in f:print(py)

官方說明:

glob.iglob(pathname)

Return an?iterator?which yields the same values as?glob()?without actually storing them all simultaneously.

New in version 2.5.

For example, consider a directory containing only the following files:?1.gif,?2.txt, andcard.gif.?glob()?will produce the following results. Notice how any leading components of the path are preserved.

總結(jié)

以上是生活随笔為你收集整理的Python:glob模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。