os.path.walk()
只遍历一层
walk(root,callable,args)方法有三个参数:要遍历的目录,回调函数,回调函数的参数(元组形式)。
调用的过程是遍历目录下的文件或目录,每遍历一个目录,调用回调函数,并把args作为参数传递给回调函数。
回调函数定义时也有三个参数,比如示例中的func中的三个参数,分别为walk传来的参数、目录的路径、目录下的文件列表(只有文件名,不是完整路径)。
import os root='/home/geo_linux/dataset/MIT_persons_jpg' def func(args,dire,fis): #回调函数的定义 for f in fis: print f os.path.walk(root,func,()) #遍历
原型为:os.walk(top, topdown=True, onerror=None, followlinks=False)
我们一般只使用第一个参数
该方法对于每个目录返回一个三元组,(dirpath, dirnames, filenames)。第一个是路径,第二个是路径下面的目录,第三个是路径下面的非目录(对于windows来说也就是文件)。
#coding:utf-8 import os s = os.sep fi=open('f.txt','w') # r只读,w可写,a追加 root = "/home/hejian/tensorflow" for rt, dirs, files in os.walk(root): for f in files: fi.write(os.path.join(rt,f)+'\n') # fname = os.path.splitext(f) # new = fname[0] + 'b' + fname[1] # os.rename(os.path.join(rt,f),os.path.join(rt,new)) fi.close()