如何使用Python在文件夹中搜索与正则表达式匹配的文件名?

时间:2008-11-24 20:38:46

标签: python regex

我在编写一个函数时遇到一些困难,该函数将在目录中搜索与特定正则表达式匹配的文件(我使用're.compile'编译)。所以我的问题是:如何搜索目录(我计划使用os.walk)来查找与特定正则表达式匹配的文件?非常感谢一个例子。提前致谢。

4 个答案:

答案 0 :(得分:10)

这将找到以两位数字开头并以gif结尾的所有文件,如果您愿意,可以将文件添加到全局列表中:

import re
import os
r = re.compile(r'\d{2}.+gif$')
for root, dirs, files in os.walk('/home/vinko'):
  l = [os.path.join(root,x) for x in files if r.match(x)]
  if l: print l #Or append to a global list, whatever

答案 1 :(得分:2)

  1. 了解RE模式的match方法。

  2. 阅读How do I copy files with specific file extension to a folder in my python (version 2.5) script的所有答案?

  3. 选择一个使用fnmatch的人。将fnmatch替换为re.match。这需要仔细考虑。这不是剪切和粘贴。

  4. 然后,提出具体问题。

答案 2 :(得分:1)

如果你必须匹配的模式很简单,可以使用文件系统通配符,我建议你看一下glob模块,它存在于这个目的。

答案 3 :(得分:1)

其中一位Stackoverflow创始人是JGSoft RegexBuddy的忠实粉丝。当我在工作中编写一个简单的文件移动脚本时,我一时兴起,并且使用您选择的语言很容易为工作生成最好的正则表达式。如果您在开发正则表达式本身时遇到问题,这是检查逻辑的好工具。我想我现在也是一个大粉丝。

相关问题