zoukankan      html  css  js  c++  java
  • python中的os.walk()方法学习

    """
    os.listdir(path) 只能返回当前path路径下的文件和文件夹,不包含子目录中的内容,并且不包含路径,只是文件或文件夹名字.
    os.walk(path)用来遍历一个目录内各个子目录和子文件
    每次遍历的对象返回的都是一个三元组(root, dirs, files)
    root:指的是当前正在遍历的这个文件夹本身的地址,也就是walk传进去的那个目录地址
    dirs:是一个list,内容是该文件夹下所有的子目录的名字,
    files:同样是一个list,内容是该文件夹下的所有文件的名字,
    这些名字不包括路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name)
    """
    测试目录为
    F:aa
    ----bb
    ----detect.h
    ----detect.cpp
    ----cc
    ----track.cpp
    ----test1.txt

    1分别打印root  dirs  files的值;

    import os
    def main():
        # 前面的r是告诉解释器保持字符串的原始值,不要对其中的进行转义,如果不加r,那么路径要改成“F:/aa”或者“F:\aa”
        for root, dirs, files in os.walk(r"F:aa"):
            print(root)
            print(dirs)
            print(files)
            print('------------------------------')
    if __name__ == '__main__':
        main()

    打印结果如下:

    2.也可以用下面的方法打印

    import os
    def main():
        # 前面的r是告诉解释器保持字符串的原始值,不要对其中的进行转义,如果不加r,那么路径要改成“F:/aa”或者“F:\aa”
        for a in os.walk(r"F:aa"):
            print(a[0])
            print(a[1])
            print(a[2])
            print('------------------------------')
    if __name__ == '__main__':
        main()

    打印结果和第一种方法是一样的

    3.得到子目录的完整路径,得到文件的完整路径

    import os
    def main():
        # 前面的r是告诉解释器保持字符串的原始值,不要对其中的进行转义,如果不加r,那么路径要改成“F:/aa”或者“F:\aa”
        for root, dirs, files in os.walk(r"F:aa"):
            for dir in dirs:
                print(os.path.join(root, dir))
            print('111111111111111111111')
            for file in files:
                print(os.path.join(root, file))#这里join的时候只需要root和file就能得到完整路径,不需要增加dir
            print('222222222222222222222')
    if __name__ == '__main__':
        main()

    打印结果如下

    作者:cumtchw
    出处:http://www.cnblogs.com/cumtchw/
    我的博客就是我的学习笔记,学习过程中看到好的博客也会转载过来,若有侵权,与我联系,我会及时删除。

  • 相关阅读:
    EF性能优化-有人说EF性能低,我想说:EF确实不如ADO.NET
    MiniProfiler工具介绍(监控EF生成的SQL语句)--EF,迷你监控器,哈哈哈
    C# 数据库并发的解决方案(通用版、EF版)
    锁、C#中Monitor和Lock以及区别
    LINQ 如何动态创建 Where 子查询
    C# Npoi 实现Excel与数据库相互导入
    MVC ActionResult派生类关系图
    如何构造树状 JSON 数据 JSON-Tree
    如何构造分层次的 Json 数据
    如何使用 GroupBy 计数-Count()
  • 原文地址:https://www.cnblogs.com/cumtchw/p/12437026.html
Copyright © 2011-2022 走看看