• Python递归遍历目录下所有文件


    #自定义函数:

    import os
    path="D:\Temp_del\a"
    def gci (path):
    """this is a statement"""
    parents = os.listdir(path)
    for parent in parents:
    child = os.path.join(path,parent)
    #print(child)
    if os.path.isdir(child):
    gci(child)
    # print(child)
    else:
    print(child)

    gci(path)

    print(gci.__doc__)  #显示函数声明部分内容

    def function_name(param):
    """"""this is a statement.""""""
    可以使用函数的属性__doc__来返回该声明,如print(function_name.__doc__)

    #使用os.walk方法遍历:

    import os
    path="D:\Temp_del\a"
    for i in os.walk(path):
    print(i)

    返回结果:

    ('D:\Temp_del\a', ['AFA', 'x64'], ['AudioFilterAgent.INI', 'Setup.exe'])
    ('D:\Temp_del\a\AFA', ['222'], ['CAudioFilterAgent.exe', 'CAudioFilterAgent64.exe'])
    ('D:\Temp_del\a\AFA\222', [], ['新建日记本文档 - 副本.jnt', '新建日记本文档.jnt'])
    ('D:\Temp_del\a\x64', ['bbb'], ['AudioFilterAgent.INI', 'setup64.exe'])
    ('D:\Temp_del\a\x64\bbb', [], ['CAudioFilterAgent.exe', 'CAudioFilterAgent64.exe'])

    返回结果说明:

    返回的是一个三元tupple(dirpath, dirnames, filenames),
    其中第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件.
    dirpath是一个string,代表目录的路径,
    dirnames是一个list,包含了dirpath下所有子目录的名字,
    filenames是一个list,包含了非目录文件的名字.这些名字不包含路径信息,如果需要得到全路径,需要使用 os.path.join(dirpath, name).

    =====================

    方法一:os.listdir

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import os
    def gci(filepath):
    #遍历filepath下所有文件,包括子目录
      files = os.listdir(filepath)
      for fi in files:
        fi_d = os.path.join(filepath,fi)            
        if os.path.isdir(fi_d):
          gci(fi_d)                  
        else:
          print os.path.join(filepath,fi_d)
    
    #递归遍历/root目录下所有文件
    gci('/root')

     方法二:os.walk

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import os
    for fpathe,dirs,fs in os.walk('/root'):
      for f in fs:
        print os.path.join(fpathe,f)

    列出所有文件:

    [i for i in os.listdir('.') if os.path.isdir(i)]
    列出所有.py文件
    [i for i in os.listdir('.') if os.path.isfile(i) and os.path.splitext(i)[1]=
    ='.py']
  • 相关阅读:
    Js计算时间差(天、小时、分钟、秒)
    [原创]chromium源码阅读-进程间通信IPC.消息的接收与应答
    loki之内存池SmallObj[原创]
    A Cross-Platform Memory Leak Detector
    UML Diagrams Using Graphviz Dot
    My Emacs Writing Setup
    Drawing Graphs using Dot and Graphviz
    SHFileOperation的用法
    latex中文模板
    C++ Design Pattern: What is a Design Pattern?
  • 原文地址:https://www.cnblogs.com/dreamer-fish/p/3820625.html
Copyright © 2020-2023  润新知