import os
path = os.getwd()#①
lst = os.walk(path)#②
for dirpath,dirname,filename in lst#
print(dirpath)
print(dirname)
print(filename)
这个代码是怎么做到读取文件所在路径内所有文件(包括子文件)
我的角度:
①path用于存储当前的文件目录得到的是一个程序启动时程序所在的目录列表(包括目录)
②lst的用于得到一个元组(程序所在的文件夹,文件夹的二级文件夹,当前文件夹内的文件)
如果遍历这个lst的话得到的应该只有这元组三个元素,为什么能顺着二级文件遍历?我错在哪?
模块os中的walk()函数可以遍历文件夹下所有的文件。
该函数可以得到一个三元tupple(dirpath, dirnames, filenames).
参数含义:
dirpath:string,代表目录的路径;
dirnames:list,包含了当前dirpath路径下所有的子目录名字(不包含目录路径);
filenames:list,包含了当前dirpath路径下所有的非目录子文件的名字(不包含目录路径)。
def walk(file_path):
file_dir = os.walk(file_path)
for root, dirs, files in file_dir:
print('**当前目录路径 :')
print(root) #当前目录路径
print('\n')
print('**当前路径下所有子目录 :')
print(dirs) #当前路径下所有子目录
print('\n')
print('**当前路径下所有非目录子文件 :')
print(files) #当前路径下所有非目录子文件
print('\n')
是
import os
for dirpath, dirnames, filenames in os.walk('.'):
for filename in filenames:
print(os.path.join(dirpath, filename))
你可以参考下这篇文章:OS 模块的使用