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 ...
随机推荐
- [Java面试五]Spring总结以及在面试中的一些问题.
1.谈谈你对spring IOC和DI的理解,它们有什么区别? IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spri ...
- Atitit Gaussian Blur 高斯模糊 的原理and实现and 用途
Atitit Gaussian Blur 高斯模糊 的原理and实现and 用途 1.1. 高斯模糊 的原理(周边像素的平均值+正态分布的权重1 1.2. 高斯模糊 的用途(磨皮,毛玻璃效果,背景虚化 ...
- asp.net mvc 使用ajax请求 控制器 (PartialViewResult)分部的action,得到一个分部视图(PartialView)的HTML,进行渲染
在asp.net mvc 使用ajax请求获取数据的时候,我们一般是返回json或者xml,然后解析这些数据进行渲染,这样会比较麻烦,可以请求一个 分部action,返回一个分部视图 直接可以渲染,不 ...
- 在忘记root密码的情况下如何修改linux系统的root密码
1.系统启动时长按shift键后可以看到如下界面: 2.找到 recovery mode 那一行, 按下[e]键进入命令编辑状态,到 linux /boot/vmlinuz-....... r ...
- .NET 程序启动调试器 .NET 测试代码耗费时间
有些场景的.NET程序,不容易设置断点,可以用下面的方法,在.NET代码中增加启动调试器的代码: if (!Debugger.IsAttached) Debugger.Launch(); .cshar ...
- 理解模板引擎Razor 的原理
Razor是ASP.NET MVC 3中新加入的技术,以作为ASPX引擎的一个新的替代项.简洁的语法与.NET Framework 结合,广泛应用于ASP.NET MVC 项目.Razor Pad是一 ...
- 浏览器端获取局域网IP地址,本机的MAC,以及机器名
原文链接:http://www.orlion.ga/59/ 只针对IE且客户端的IE允许AcitiveX运行 code: <html> <head> <title> ...
- DOM一致性检测
[implementation] 由于DOM分为多个级别,也包含多个部分,因此检测浏览器实现了DOM的哪些部分就十分必要.document.implementation属性就是这些提供相应信息和功能的 ...
- 【Android】[转] ANR的分析和问题处理
一:什么是ANR ANR:Application Not Responding,即应用无响应 二:ANR的类型 ANR一般有三种类型: 1. KeyDispatchTimeout(5 seconds) ...
- excel日期格式转换为文本格式
今天测试读取excel并修改数据库数据的时候遇到几个小问题. 1.空指针,读写io异常蛮多的,获取不到的数据就是null 2.读取文件位置,开始找不到文件 3.读取日期格式结果是一个数值,因此需要转化 ...