Python遍历文件夹
许多次需要用python来遍历目录下文件, 这一次就整理了记录在这里。
随实际工作,不定期更新。
import os
class FileTraversal:
def __init__(self, rootpath):
self.rootpath = rootpath
#从顶至底的遍历(在剪短的代码里,我比较喜欢这清晰的变量名)
self.tracersal_from_top_to_down = True
#遍历发生错误的时候的回调函数
#函数参数为一个OSError类型参数
#文件名会作为错误参数的一个属性 , 如 error.filename
self.on_error_func = None
#是否变量链接文件(如:软链接、硬链接、windows上的快捷方式)
self.follow_links = False
'''
设置遍历顺序
'''
def setTopToDown(self, from_top_to_dowm=True):
self.tracersal_from_top_to_down = from_top_to_dowm
return self
'''
设置错误回调函数
'''
def setErrorFunc(self, err_func=None):
self.on_error_func = err_func
return self
'''
设置是否遍历连接文件
'''
def setFollowLinks(self, follow_links = False):
self.follow_links = follow_links
return self
'''
获取迭代器
'''
def getGenerator(self):
return os.walk(self.rootpath, self.tracersal_from_top_to_down, self.on_error_func, self.follow_links)
'''
获取所有文件
@param absolute_path: 是否返回绝对路径,或者仅仅文件名
'''
def getFiles(self,absolute_path=True):
files = []
for parent,dirnames,filenames in self.getGenerator(): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
for file in filenames:
filepath = os.path.join(parent,file)
files.append( filepath if absolute_path else file)
return files
'''
获取当前目录下所有的文件(不递归遍历)
@
'''
def getThisLevelFiles(self,absolute_path=True):
files = []
all_in_dir = os.listdir(self.rootpath)
for file in all_in_dir:
filepath = os.path.join(self.rootpath, file)
if not os.path.isdir(filepath):
files.append(filepath if absolute_path else file)
return files
一般用法如下:
traversal = FileTraversal("/home/user/testdir")
traversal.setTopToDown(False).setErrorFunc(err_foo).setFollowLinks(True) #不设置,直接使用默认参数亦可
files = traversal.getFiles()
# do something with files ....
源文件: FileTraversal.py
Python遍历文件夹的更多相关文章
- python 遍历文件夹 文件
python 遍历文件夹 文件 import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirn ...
- python遍历文件夹下的文件
在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法.下面列出: os.path.abspath(path) #返回绝对路径 os.path.basename ...
- Python 遍历文件夹清理磁盘案例
import os suffix_name_list = [".pdb", ".ilk"] def find_file(path): # 遍历文件夹 for i ...
- python 遍历文件夹下的所有文件
基础 import os # 遍历文件夹 def walkFile(file): for root, dirs, files in os.walk(file): # root 表示当前正在访问的文件夹 ...
- Python遍历文件夹和读写文件的方法
需 求 分 析 1.读取指定目录下的所有文件2.读取指定文件,输出文件内容3.创建一个文件并保存到指定目录 实 现 过 程 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Ja ...
- python遍历文件夹中所有文件夹和文件,os.walk
python中可以用os.walk来遍历某个文件夹中所有文件夹和文件. 例1: import os filePath = 'C:/Users/admin/Desktop/img' for dirpat ...
- python 遍历文件夹
import os import os.path rootdir = “d:\data” # 指明被遍历的文件夹 for parent,dirnames,filenames in os.walk(ro ...
- python 遍历文件夹中所有文件
'''使用walk方法递归遍历目录文件,walk方法会返回一个三元组,分别是root.dirs和files. 其中root是当前正在遍历的目录路径:dirs是一个列表,包含当前正在遍历的目录下所有的子 ...
- Python遍历文件夹枚举所有文件类型
>>> import os >>> def enumfiles(path, dest): files = os.listdir(path) for f in fil ...
随机推荐
- Atitit j2ee5 jee5 j2ee6 j2ee7 jee6 jee7 新特性
Atitit j2ee5 jee5 j2ee6 j2ee7 jee6 jee7 新特性 Keyword Java ee5 ,Java ee6,Java ee7 j2ee5 jee5 j2ee6 j2 ...
- JS---DOM操作有哪一些
一 DOM对象有哪一些 1 windos 1.属性 opener 2.方法 open(),close() 例:<script langguage="javascript&qu ...
- POI生成WORD文档
h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h ...
- CGContextTranslateCTM: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
最近在测试的过程中, 发现了SpringBoar的一个问题: SpringBoard[53] <Error>: CGContextTranslateCTM: invalid context ...
- css margin
css中margin边界叠加问题: 看个同方向和异方向margin重叠现象: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti ...
- 大型 JavaScript 应用架构中的模式
原文:Patterns For Large-Scale JavaScript Application Architecture by @Addy Osmani 今天我们要讨论大型 JavaScript ...
- 初始化的一些问题(Vector使用)
import java.util.Vector; import java.util.Iterator; import java.util.Arrays; import java.util.ArrayL ...
- java.lang.Long cannot be cast to java.lang.Integer解决办法
情景: mybatis连接oracle 报错: 测试增的时候,报错 Java.lang.Long cannot be cast to java.lang.Integer:删改没有报错. 排查过程: ...
- JavaScript垃圾回收(二)——垃圾回收算法
一.引用计数(Reference Counting)算法 Internet Explorer 8以下的DOM和BOM使用COM组件所以是引用计数来为DOM对象处理内存,引用计数的含义是跟踪记录每个值被 ...
- HTML5第一讲
第一回合:什么是HTML5? HTML5 将成为 HTML.XHTML 以及 HTML DOM 的新标准. HTML 的上一个版本诞生于 1999 年.自从那以后,Web 世界已经经历了巨变. HTM ...