我们往往在操作文件时,会不知道文件具体的路径。一般如果只是处理一个文件的话我们可以在文件所在的文件夹下运行python脚本,默认为当前脚本。而如果一个文件有多层目录结构时,往往这种方法很有局限性。
例如在处理mesaage文件时,先要解压一个压缩文件,其中有两个文件夹,而每个文件夹下的第四层目录中都有一个message文件,现在所要做的就是将每个message文件读入,然后进行分析。
若使用绝对路径去读入文件无疑降低了代码的重用性,所以就写了一个寻找关键字文件的函数。(函数还有很多漏洞,但能解决燃眉之急了。)
#寻找关键字文件
def findfile(keyword,root):
#keyword为关键字,root为文件夹路径
filelist=[] #存放每个文件
rfilelist=[] #存放匹配文件
for root,dirs,files in os.walk(root):
for name in files:
filelist.append(os.path.join(root,name))
#遍历路径文件下的所有文件夹,将所有文件放入filelist
for i in filelist:
if os.path.isfile(i):
if keyword in os.path.basename(os.path.splitext(i)[0]):
rfilelist.append(i)
else: