程序代码:
#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文件,还请指点迷津解救我这要爆炸的大脑
3 个解决方案
#1
我用的python3,把
path = unicode(r'F:\My Study\linux学习笔记\test','utf-8') 改为
path = r'F:\My Study\linux学习笔记\test' 后,测试没问题,中文文件正常输出。
你调试一下看看哪里出了问题
你调试一下看看哪里出了问题
#2
已经找出问题了,不是这个地方,是return f(i)错了,直接f(i)调用这个函数本身,而不是把f(i)的结果再赋给f再去遍历,非常感谢
#3
return f(i)等于f(f(i))
#1
我用的python3,把
path = unicode(r'F:\My Study\linux学习笔记\test','utf-8') 改为
path = r'F:\My Study\linux学习笔记\test' 后,测试没问题,中文文件正常输出。
你调试一下看看哪里出了问题
你调试一下看看哪里出了问题
#2
已经找出问题了,不是这个地方,是return f(i)错了,直接f(i)调用这个函数本身,而不是把f(i)的结果再赋给f再去遍历,非常感谢
#3
return f(i)等于f(f(i))