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 dsl exer v3 qb3 新特性
Atitit dsl exer v3 qb3 新特性 /atiplat_cms/src/com/attilax/dsl/DslParser.java V3 支持typeed参数,与简化的notyp参数 ...
- 不同场景下 MySQL 的迁移方案
一 目录 一 目录 二 为什么要迁移 三 MySQL 迁移方案概览 四 MySQL 迁移实战 4.1 场景一 一主一从结构迁移从库 4.2 场景二 一主一从结构迁移指定库 4.3 场景三 一主一从结构 ...
- javascript中Date对象的应用——简易日历的实现
× 目录 [1]效果 [2]HTML [3]CSS[4]JS 前面的话 简易日历作为javascript中Date对象的常见应用,用途较广泛.本文将详细说明简易日历的实现思路 效果演示 HTML说明 ...
- hdu1548 A strange lift(bfs 或Dijkstra最短路径)
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #d ...
- NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版
nsis中文版(Nullsoft Scriptable Install System)是一个专业的开源的可以用来封闭Windows程序的实用工具,是一个开源的 Windows 系统下安装程序制作程序. ...
- 35款加速网站开发的 CSS 开发工具
网络有很很多的 CSS 工具和教程可用,它可以帮助设计人员和开发人员轻松.快速地学习 CSS 技术.这些工具中在高效开发 Web 应用程序中发挥重要作用. 在这篇文章中,我们收集了35个最好的 CSS ...
- Windows Azure HandBook (7) 基于Azure Web App的企业官网改造
<Windows Azure Platform 系列文章目录> 1.用户场景: C公司是全球大型跨国连锁餐厅,在世界上大约拥有3万间分店.其IT系统主要部署其海外数据中心,或者租用其他ID ...
- Azure China (12) 域名备案问题
<Windows Azure Platform 系列文章目录> (1) 默认情况下,我们在创建的Azure 服务,默认使用的DNS地址为: http://xxx.chinacloudapi ...
- excel日期格式转换为文本格式
今天测试读取excel并修改数据库数据的时候遇到几个小问题. 1.空指针,读写io异常蛮多的,获取不到的数据就是null 2.读取文件位置,开始找不到文件 3.读取日期格式结果是一个数值,因此需要转化 ...
- 解决AndroidADT自带Eclipse编辑器不能自动代码提示的问题。
今天发现,我下载的AndroidADT开发套装中自带的Eclipse没有自动代码提示功能.通过参考http://blog.csdn.net/coolszy/article/details/724195 ...