免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1375 | 回复: 2
打印 上一主题 下一主题

将这个函数改写 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-02-23 16:15 |只看该作者 |倒序浏览
def walk_dir(dirname):
  import os
  for d in os.listdir(dirname):
    path = os.path.join(dirname, d)
    if os.path.isdir(path):
      walk_dir(path)
    else:
      print path

这个函数可以遍历指定的文件夹,并打印指定文件夹中的所有文件,现在,我想将它改写一下,
1.还是函数形式(不是迭代器)
2.输出结果是一个数组,这个数组包含所有被遍历的文件。
请问,如何修改?我尝试半天,也没有成功。由于是递归调用,存储中间结果有点难。无法写return,因为要递归调用,第一个return触发后,函数终止了,但是结果还没有全部拿到,请问,如何解决?

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
2 [报告]
发表于 2013-02-23 17:16 |只看该作者
  1. fname = []

  2. def walk_dir(dn):
  3.     import os
  4.     for d in os.listdir(dn):
  5.         pn = os.path.join(dn, d)
  6.         if os.path.isdir(pn):
  7.             walk_dir(pn)
  8.         else:
  9.             fname.append(pn)
复制代码

论坛徽章:
0
3 [报告]
发表于 2013-02-23 17:19 |只看该作者
学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP