1.方法一:os.listdir(path). 获取传入参数(目录)中的所有文件和子目录,然后循环递归处理
import os,os.path # def traverse(pathname): for item in os.listdir(pathname): fullitem = os.path.join(pathname,item) print(fullitem) if os.path.isdir(fullitem): #判断是否为目录 traverse(fullitem) traverse("/Users/xiaminli/Downloads/21天学通Python-1/源代码/C9")
2.方法二:os.walk可以完成递归功能。该函数将返回一个元组(root,dirs,files),其中的root表示当前目录,dirs是当前目录下所有的子目录,而files则表示当前目录下所有的文件
import os,os.path def trav_walk(pathname): for root,dirs,files in os.walk(pathname): for fil in files: # fname=os.path.abspath(os.path.join(root,fil)) fname2=os.path.join(root,fil) print(fname2) # trav_walk("d:/python34") traverse("/Users/xiaminli/Downloads/21天学通Python-1/源代码/C9")
----------------------------------------
输出:
/Users/xiaminli/Downloads/21天学通Python-1/源代码/C9/a9_1.py /Users/xiaminli/Downloads/21天学通Python-1/源代码/C9/a9_2.py /Users/xiaminli/Downloads/21天学通Python-1/源代码/C9/a9_3.py /Users/xiaminli/Downloads/21天学通Python-1/源代码/C9/a9_4.py /Users/xiaminli/Downloads/21天学通Python-1/源代码/C9/a9_5.py /Users/xiaminli/Downloads/21天学通Python-1/源代码/C9/a9_6.py /Users/xiaminli/Downloads/21天学通Python-1/源代码/C9/a9_7.py