Python中的正则表达式,用于文件夹中的匹配文件

时间:2012-01-31 17:42:54

标签: python regex

我想使用正则表达式匹配文件夹中的所有文件,原因如下: 我用过这个:

re.compile(r'\.*$')

但这也是匹配隐藏文件和临时文件。 有更好的选择吗?

3 个答案:

答案 0 :(得分:2)

这假设您想要对这些文件名执行某些操作。正如评论中提到的那样,您应该使用glob。由于我不确定你对“临时”文件的要求,这是最简单的事情。它不会返回任何隐藏文件。文件是当前工作目录中的文件路径列表。

import os, glob
files = [f for f in glob.glob('./*') if os.path.isfile(f)]

答案 1 :(得分:1)

尝试使用re.compile(r'\ w + \。* \ w *')将字母数字文件名与可能的点扩展名匹配。

\ w +匹配一个或多个字母数字文件名[a-zA-Z0-9 _]

\。*匹配零或更多'。'字符

\ w *匹配零个或多个文件扩展名的字母数字字符。

Kodos是一个优秀的Python正则表达式开发人员/调试器。

答案 2 :(得分:1)

使用此目录从目录中获取所有文件:

import os
files = [f for p, d, f in os.walk('/foo/bar')][0]