我正在尝试获取unix服务器上任何子目录中遵循以下模式的所有php文件:
./*/www/p3/
./*/www/P3/
./*/www/p3[some letters after a variation on p3 and P3]/
php文件也可能位于这些文件的其他子目录中。你知道吗
我试过两种不同的方法:
fls = glob.glob('./*/www/[a-z][3]/*')
fls.extend(glob.glob('./*/www/[a-z][3]/*/*'))
fls.extend(glob.glob('./*/www/[a-z][3]/*/*/*'))
这也恰好包含了另一个我不想要的目录 (“/*/www/h3”,每个子目录都有)
我也试过:
import os
import fnmatch
matches = []
for root, dirnames, filenames in os.walk('./'):
for filename in fnmatch.filter(filenames, '*.php'):
matches.append(os.path.join(root, filename))
它返回子目录中所有php文件。你知道吗
这两种方法都是一个好的开始吗?我应该尝试另一种匹配文件名的方法吗?你知道吗
如我所说,您可以使用
glob.glob
为os.walk
选择顶级目录或者可以使用
fnmatch
来确保找到的php文件位于所需位置:第一种方法比第二种方法需要更少的文件系统操作。你知道吗
相关问题 更多 >
编程相关推荐