Linux 下 “.”开头的文件 是隐藏文件
我想让搜索的时候不要列出 隐藏目录
但是我的 os.path.walk 却把所有文件都列出来了
请问 os.path.walk 如何不要搜索 隐藏目录文件 , 或其它快的遍历目录的方法
谢谢
我现在用的代码是
#!/usr/bin/python
"""ffind
find the files
"""
import os.path
import fnmatch
_paths=[]
_ctime=''
_patterns=[]
files=[]
def _visit(arg,dirname,filenames):
global _paths
global _ctime
global _patterns
global files
filenamess=[]
# 匹配文件扩展名
for i in filenames:
for j in _patterns:
if fnmatch.fnmatch(i,j):
filenamess.append(i)
i=''
# 检查修改时间,修改时间晚于 _ctime 的放入 files
for i in filenamess:
filen=os.path.normpath(os.path.join(dirname, i))
if os.path.getctime(filen) > _ctime:
files.append(filen)
return None
def ffind(paths,ctime='',patterns=[]):
"""find the file
paths: paths list ,
ctime: change time , patterns: patterns list
"""
global _paths
global _ctime
global _patterns
global files
_paths=paths
_ctime=ctime
_patterns=patterns
for i in paths:
os.path.walk(i,_visit,0)
return files
调用 ffind 的时候会把 .开头的隐藏文件也列出来
ffind(['/home/hua'],0,['*.txt']) 会把 /home/hua/.gaim/ 等
隐藏的目录下的文件都列出来