python如何递归遍历目录及其子目录得到指定扩展名文件路径,为何递归后得不到中文文件名文件

元气囤仔 2017-07-30 05:54:58


程序代码:
#coding:utf-8
import os, sys

def f(p):
for i in os.listdir(p):
i = os.path.join(p,i)
if os.path.isfile(i):
if os.path.splitext(i)[1] == '.txt':
print i
else:
return f(i)

path = unicode(r'F:\My Study\linux学习笔记\test','utf-8')
f(path)

实在不解为何递归后,没有输出中文名称的txt文件,还请指点迷津解救我这要爆炸的大脑
...全文
311 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
元气囤仔 2017-07-30
  • 打赏
  • 举报
回复
return f(i)等于f(f(i))
元气囤仔 2017-07-30
  • 打赏
  • 举报
回复
已经找出问题了,不是这个地方,是return f(i)错了,直接f(i)调用这个函数本身,而不是把f(i)的结果再赋给f再去遍历,非常感谢
secsilm 2017-07-30
  • 打赏
  • 举报
回复
我用的python3,把 path = unicode(r'F:\My Study\linux学习笔记\test','utf-8') 改为 path = r'F:\My Study\linux学习笔记\test' 后,测试没问题,中文文件正常输出。 你调试一下看看哪里出了问题

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧