python 查找文件夹下所有文件
参考网站:http://blog.youkuaiyun.com/kiki113/article/details/4311095
def find_file_by_pattern(pattern='.*', base=".", circle=True):
'''查找给定文件夹下面所有 '''
re_file = re.compile(pattern)
if base == ".":
base = os.getcwd()
final_file_list = []
print base
cur_list = os.listdir(base)
for item in cur_list:
if item == ".svn":
continue
full_path = os.path.join(base, item)
if full_path.endswith(".doc") or /
full_path.endswith(".bmp") or /
full_path.endswith(".wpt") or /
full_path.endswith(".dot"):
continue
# print full_path
bfile = os.path.isfile(item)
if os.path.isfile(full_path):
if re_file.search(full_path):
final_file_list.append(full_path)
else:
final_file_list += find_file_by_pattern(pattern, full_path)
return final_file_list
python查找目录下指定文件
参考网站:http://simon-zzm.blog.163.com/blog/static/88809522201148102914827/
导入os模块使用walk函数。walk函数比较简单,迭代返回元组,一个元组有三个元
素(遍历的路径、当前遍历路径下的目录、当前遍历目录下的文件名)。
建立一个textfind目录。建立目录1,目录1下有目录2和文件1.txt,在目录2下有
3目录、33目录和2.txt,在目录3下有3.txt。
测试结果:
>>> import os
>>> a=os.walk(r'testfind/')
>>> for i in a:
... print i
...
('testfind/', ['1'], [])
('testfind/1', ['2'], ['1.txt'])
('testfind/1/2', ['3', '33'], ['2.txt'])
('testfind/1/2/3', [], ['3.txt'])
('testfind/1/2/33', [], [])
偷懒的方法用命令find比较简单。使用python如果要找指定文件,还需要用正则匹
配一下。
import re
import os
find_file=re.compile(r".txt$")
find_path=r"./testfind"
find_walk=os.walk(find_path)
for path,dirs,files in find_walk:
for file in files:
if find_file.search(file):
print("%s"%path+"/"+file)