python遍历目录的方法小结

yipeiwu_com6年前Python基础

本文实例总结了python遍历目录的方法。分享给大家供大家参考,具体如下:

方法一使用递归:

"""
def WalkDir( dir, dir_callback = None, file_callback = None ):
  for item in os.listdir( dir ):
    print item;
    fullpath = dir + os.sep + item
    if os.path.isdir( fullpath ):
      WalkDir( fullpath, dir_callback, file_callback )
      if dir_callback: dir_callback( fullpath )
      else:
        if file_callback: file_callback( fullpath )"""
def DeleteDir( dir ):
  print "path"
    #os.rmdir( dir )
def DeleteFile( file ):
  try:
    print "file"
    #os.unlink( file )
  except WindowsError, e:
    pass
WalkDir( os.environ['TEMP'], DeleteDir, DeleteFile )

方法二:

import os, stat
def WalkDir( dir, dir_callback = None, file_callback = None ):
  for root, dirs, files in os.walk(dir):
    for f in files:
      print f
      file_path = os.path.join(root, f)
      if file_callback: file_callback( file_path )
      for d in dirs:
        dir_path = os.path.join(root, d)
        if dir_callback: dir_callback( dir_path )
def DeleteDir( dir ):
  print "path"
    #os.rmdir( dir )
def DeleteFile( file ):
  try:
    print "file"
    #os.unlink( file )
  except WindowsError, e:
    pass
WalkDir( os.environ['TEMP'], DeleteDir, DeleteFile )

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

简单了解Python下用于监视文件系统的pyinotify包

什么是inotify:   Inotify是一个事件驱动的通知机制,Inotify 提供一个简单的API,使用最小的文件描述符,并且允许细粒度监控。与 inotify 的...

python中利用h5py模块读取h5文件中的主键方法

如下所示: import h5py import numpy as np #HDF5的写入: imgData = np.zeros((2,4)) f = h5py.File('HDF...

python实现多线程的方式及多条命令并发执行

一、概念介绍 Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个th...

python Celery定时任务的示例

python Celery定时任务的示例

本文介绍了python Celery定时任务的示例,分享给大家,具体如下: 配置 启用Celery的定时任务需要设置CELERYBEAT_SCHEDULE 。 Celery的定时...

Python实现的归并排序算法示例

Python实现的归并排序算法示例

本文实例讲述了Python实现的归并排序算法。分享给大家供大家参考,具体如下: 归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)...