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

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)

4个回答

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

oyljerry
oyljerry 那你把direction打印看看是不是路径没拼接好
接近 4 年之前 回复
u014632633
Berumottox 回复oyljerry: 判断了now是目录,direction是一个列表,列出了now目录下的文件
接近 4 年之前 回复

加打印,调试一下就行

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__':

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问