python无法打印子目录文件,递归不起作用

import os

list_result = os.listdir('.')

def search(list_result_copy):
for now in list_result_copy:
if os.path.isfile(now): # file in current directory
print os.path.join(os.path.abspath('.'), now)

    if os.path.isdir(now):      # directory in current directory
        direction = os.listdir(os.path.join(os.path.abspath('.'), now))
        search(direction)      #就是这里,我想要递归输出所有子目录文件,但是这里压根儿不执行

if name == '__main__':
search(list_result)

direction要判断一下是不是目录。只有目录才需要递归

加打印,调试一下就行

if os.path.isfile(now) 感觉这句有问题,now只是一个名字,不是全路径呀 递归到下一层的时候 就乱了 找不到子文件的

-*- coding: utf-8 -*-

"""

  • Created by YA on 16/10/21. """ import os

list_result = os.listdir('.')

def search(list_result_copy):
for now in list_result_copy:
if os.path.isfile(now): # file in current directory
print(os.path.join(os.path.abspath('.'), now))

    if os.path.isdir(now):  # directory in current directory
        direction = os.listdir(os.path.join(os.path.abspath('.'), now))
        search(direction)  # 就是这里,我想要递归输出所有子目录文件,但是这里压根儿不执行

if name == '__main__':
search(list_result)

测试了一下,没问题,可以打印子目录文件,不过你的代码中if name == '__main__': 应该是if name == '__main__':