1.使用 os.walk()
代码:
import os
path = "D:/test"
fns = [os.path.join(root,fn) for root, dirs, files in os.walk(path) for fn in files]
for f in fns:
print f
结果: 路径或文件名为中文的话会显示乱码
C:\Python27\python.exe E:/Documents/test/aatest.py
D:/test\1.txt
D:/test\��.txt
D:/test\����\1.txt
D:/test\����\��.txt
Process finished with exit code 0
2. 使用 scandir.walk()
代码:
import scandir
path = "D:/test"
fns = [os.path.join(root, fn) for root, dirs, files in scandir.walk(path) for fn in files]
for f in fns:
print f
结果:出现中文无乱码现象
C:\Python27\python.exe E:/Documents/test/aatest.py
D:/test\1.txt
D:/test\二.txt
D:/test\测试\1.txt
D:/test\测试\二.txt
Process finished with exit code 0
PS:
os.walk()的详细解释可以参考: http://www.runoob.com/python/os-walk.html