如果想要獲取具有特定模式名稱的所有文件的(絕對)文件路徑(文件列表),如何在Python中完成此操作(在unix上爲v 3.5)。類似於bash命令find -regex 'pattern'
。我一直在尋找os,glob,os.path和這個SO,但不能把它放在一起。Python:以遞歸方式使用正則表達式模式獲取文件的路徑名
假設你想匹配/.*[pat.txt]$/該文件的絕對路徑,你有以下diretories:
/home/me/dir1/dir1a/filepat.txt #1
/home/me/dir1/dir1a/file.txt
/home/me/dir1/dir1a/filepat.png
/home/me/dir2/filepat.txt #2
/home/me/dir3/dir3a/dir3ab/filepat
/home/me/dir3/dir3a/dir3ac/filepat.txt #3
/home/me/dir3/dir3a/dir3ac/filepat.png
然後你會得到想要三條所示的路徑:
/home/me/dir1/dir1a/filepat.txt
/home/me/dir2/filepat.txt
/home/me/dir3/dir3a/dir3ac/filepat.txt
一個嘗試是:
import fnmatch
import os
start_path = "/home/me/"
for root, dirs, files in os.walk(start_path):
for filename in fnmatch.filter(files, ".*pat.txt"):
print(os.path.join(start_path, filename))
Python,在文章標題拼錯:-) – 2017-04-20 06:26:54
尷尬 - 但很好趕上 – user3375672
不用擔心,我在「調試模式」;-) – 2017-04-20 07:10:39