#!/usr/bin/python #coding=utf-8 import os def dirlist(path): for root,dirs,files in os.walk(path): #将os.walk在元素中提取的值,分别放到root(根目录),dirs(目录名),files(文件名)中。 for file in files: print os.path.join(root,file) #根目录与文件名组合,形成绝对路径。 if __name__=='__main__': path = '/test' dirlist(path)
执行结果:
知识点:
代码中的root为str类型,dirs为list类型,files为list类型
当root为/test时,dirs列表中是/test下的目录,files列表是/test下的文件
当root为/test/aa时,dirs列表则为/test/aa下的目录,fiels列表是/test/aa下的文件
心得:
#!/usr/bin/python import os,os.path def visit(arg,dirname,names): for filespath in names: print os.path.join(dirname,filespath) if __name__=='__main__': path = '/test' os.path.walk(path,visit,())
关于os.path.walk不清楚,暂且标记。
转自
自学python之——os.walk 查找目录下的文件 - CSDN博客 https://blog.csdn.net/happylife_haha/article/details/44566975
#!/usr/bin/python # -*- coding: gbk -*- # os.walk()的使用 import os # 枚举dirPath目录下的所有文件 def main(): #begin fileDir = "F:" + os.sep + "kams" # 查找F:aaa 目录下 for root, dirs, files in os.walk(fileDir): #begin for dir in dirs: #begin print(os.path.join(root, dir)) #end for file in files: #begin print(os.path.join(root, file)) #end #end os.system("pause") #end if __name__ == '__main__': #begin main() #end
执行结果
目录:
F:kams.svn F:kamswar119 F:kamswar120
文件: F:kams.svnpristine F:kams.svn mp F:kams.svnentries F:kams.svnformat F:kams.svnwc.db F:kams.svnwc.db-journal F:kams.svnpristine12 F:kams.svnpristine96 F:kams.svnpristine9a F:kams.svnpristine1212b99bf8ef5342805dab3cb5da02650ea50d7994.svn-base F:kams.svnpristine9696c5938bf3f1c89e3da195fc7839744a8b01822a.svn-base F:kams.svnpristine9a9a71415db2b420aa1d6eae9166b5128aaab4c402.svn-base F:kamswar119czx.py F:kamswar119zabbix_server_modify.sh F:kamswar120czx.py F:kamswar120 est.py F:kamswar120zabbix_server_modify.sh
转自
Python os.walk文件遍历 - 星星故乡 - 博客园 https://www.cnblogs.com/lincj/p/5617605.html
python 简单示例说明os.walk和os.path.walk的不同
import os,os.path def func(arg,dirname,names): for filespath in names: print os.path.join(dirname,filespath) if __name__=="__main__": print "==========os.walk================" index = 1 for root,subdirs,files in os.walk("c:\test"): print "第",index,"层" index += 1 for filepath in files: print os.path.join(root,filepath) for sub in subdirs: print os.path.join(root,sub) print "==========os.path.walk================" os.path.walk("c:\test",func,())
结果如下:
总结:
(1)两者都能实现达到同一个效果
(2)在python3中,os.path.walk要被os.walk取代了,大家尽量用os.walk
(3)os.walk明显比os.path.walk要简洁一些,起码它不需要回调函数,遍历的时候一目了然:root,subdirs,files
(4)可能你在烦恼,os.path.walk的第三个参数arg有什么用,好吧,当你os.path.walk()赋值给arg的时候,你就可以在第二个参数对应的func中用arg了
转自
python 简单示例说明os.walk和os.path.walk的不同 - CSDN博客 https://blog.csdn.net/emaste_r/article/details/12442675
python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
1.载入
要使用os.walk,首先要载入该函数
可以使用以下两种方法
2.使用
os.walk的函数声明为:
walk(top, topdown=True, onerror=None, followlinks=False)
参数
os.walk 的返回值是一个生成器(generator),也就是说我们需要不断的遍历它,来获得所有的内容。
每次遍历的对象都是返回的是一个三元组(root,dirs,files)
如果topdown 参数为真,walk 会遍历top文件夹,与top文件夹中每一个子目录。
举个例子
如果我们有如下的文件结构:
3.简单的例子
保持目录 a 的目录结构,在 b 中创建对应的文件夹,并把a中所有的文件加上后缀 _bak
作者:MikuLovely
链接:https://www.jianshu.com/p/bbad16822eab
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。