Python est un langage de programmation puissant largement utilisé dans l'analyse de données, le développement Web et d'autres domaines. Dans les opérations sur les fichiers, il est souvent nécessaire de faire correspondre les noms de fichiers ou les chemins de fichiers en fonction de modèles spécifiques. Python fournit le module glob pour la correspondance de modèles de fichiers. Cet article explique comment utiliser le module glob pour la correspondance de modèles de fichiers dans Python 2.x.
Le module glob fait partie de la bibliothèque standard Python et peut être utilisé sans installation supplémentaire. Il fournit des méthodes de recherche de fichiers et de dossiers basées sur des chaînes de modèles et renvoie une liste de fichiers ou de dossiers correspondants. Le module glob prend en charge certaines règles courantes de correspondance de modèles de fichiers :
*
: correspond à n'importe quel caractère. *
:匹配任意字符。?
:匹配单个字符。[字符]
:匹配字符集中的任意一个字符。[!字符]
:匹配字符集中的任意一个字符以外的字符。下面是使用 glob 模块进行文件模式匹配的示例代码:
import glob # 匹配当前目录下所有的.py文件 files = glob.glob('*.py') print(files) # 匹配当前目录下所有以test开头的文件夹 folders = glob.glob('test*') print(folders) # 匹配当前目录及其子目录下所有的.txt文件 files = glob.glob('**/*.txt', recursive=True) print(files)
在上述代码中,首先导入了 glob 模块。然后通过 glob.glob()
方法传入匹配模式字符串,获取匹配的文件或文件夹列表。使用 *.py
可以匹配当前目录下所有的 .py 文件,其中 *
表示匹配任意字符。使用 test*
可以匹配当前目录下所有以 test 开头的文件夹,其中 *
表示匹配任意字符。使用 **/*.txt
可以匹配当前目录及其子目录下所有的 .txt 文件,其中 **
表示匹配任意级别的子目录。
运行上述代码可以得到匹配的文件或文件夹列表,分别存储在 files 和 folders 变量中。然后通过 print 函数将结果打印出来。在实际使用中,可以根据需要对匹配到的文件或文件夹进行进一步的操作。
除了基本的文件模式匹配外,glob 模块还支持路径扩展。例如,可以使用 ~
来表示用户的主目录,使用 ../
来表示上一级目录。下面是使用路径扩展的示例代码:
import glob # 匹配当前用户主目录下所有的.py文件 files = glob.glob('~/Desktop/*.py') print(files) # 匹配上一级目录下所有以test开头的文件夹 folders = glob.glob('../test*') print(folders)
在上述代码中,使用 ~/Desktop/*.py
可以匹配当前用户主目录下的 Desktop 目录中所有的 .py 文件。使用 ../test*
?
: correspond à un seul caractère.
[Character]
: correspond à n'importe quel caractère du jeu de caractères. [!Character]
: correspond à n'importe quel caractère autre que n'importe quel caractère du jeu de caractères.
glob.glob()
pour obtenir une liste de fichiers ou de dossiers correspondants. Utilisez *.py
pour faire correspondre tous les fichiers .py du répertoire actuel, où *
signifie correspondre à n'importe quel caractère. Utilisez test*
pour faire correspondre tous les dossiers commençant par test dans le répertoire actuel, où *
signifie correspondre à n'importe quel caractère. Utilisez **/*.txt
pour faire correspondre tous les fichiers .txt du répertoire actuel et de ses sous-répertoires, où **
signifie correspondre à n'importe quel niveau de sous-répertoires. 🎜🎜Exécutez le code ci-dessus pour obtenir une liste de fichiers ou de dossiers correspondants, stockés respectivement dans les variables de fichiers et de dossiers. Imprimez ensuite le résultat via la fonction d'impression. En utilisation réelle, vous pouvez effectuer d'autres opérations sur les fichiers ou dossiers correspondants selon vos besoins. 🎜🎜En plus de la correspondance de modèles de fichiers de base, le module glob prend également en charge l'expansion des chemins. Par exemple, vous pouvez utiliser ~
pour représenter le répertoire personnel de l'utilisateur et ../
pour représenter le répertoire de niveau supérieur. Voici un exemple de code utilisant l'extension de chemin : 🎜rrreee🎜Dans le code ci-dessus, utilisez ~/Desktop/*.py
pour faire correspondre tous les fichiers .py du répertoire Desktop sous le répertoire personnel de l'utilisateur actuel. Utilisez ../test*
pour faire correspondre tous les dossiers commençant par test dans le répertoire de niveau supérieur. 🎜🎜En résumé, le module glob fournit un moyen pratique d'effectuer une correspondance de modèles de fichiers. Avec une simple chaîne de modèle, vous pouvez faire correspondre les noms de fichiers ou les chemins de fichiers et renvoyer une liste de fichiers ou de dossiers correspondants. L'utilisation du module glob dans Python 2.x peut facilement implémenter la correspondance de modèles de fichiers et améliorer l'efficacité des opérations sur les fichiers. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!