在写循环嵌套的时,如果每次嵌套的作用都一样,可以试试用递归的方法:
上例用递归来搜索文件:
def getFile(myDir):
for i in os.listdir(myDir):
fPath = os.path.join(myDir, i)
#print(fPath)
if os.path.isfile(fPath) and fPath.endswith('.txt'):
print(fPath)
elif os.path.isdir(fPath):
getFile(fPath)
return
getFile('F:\\test')
1)每次循环符合条件就输出文件(或删除,和复制,或重命名),碰到文件夹就调用自身,直到将所有的文件遍历完。
2)在循环体内调用自身,所以它的出口在就在for循环,循环结束,递归就结束了。
仅用了一个循环就能遍历出一个文件夹下所有的想要的文件。只要不超出你设置的递归深度,多少层都可以。