Python遍历文件夹

许多次需要用python来遍历目录下文件, 这一次就整理了记录在这里。

随实际工作,不定期更新。

 1 import os
 2
 3 class FileTraversal:
 4
 5     def __init__(self, rootpath):
 6
 7         self.rootpath = rootpath
 8
 9         #从顶至底的遍历(在剪短的代码里,我比较喜欢这清晰的变量名)
10         self.tracersal_from_top_to_down = True
11
12         #遍历发生错误的时候的回调函数
13         #函数参数为一个OSError类型参数
14         #文件名会作为错误参数的一个属性 , 如 error.filename
15         self.on_error_func = None
16
17         #是否变量链接文件(如:软链接、硬链接、windows上的快捷方式)
18         self.follow_links = False
19
20     ‘‘‘
21         设置遍历顺序
22     ‘‘‘
23     def setTopToDown(self, from_top_to_dowm=True):
24         self.tracersal_from_top_to_down = from_top_to_dowm
25         return self
26     ‘‘‘
27         设置错误回调函数
28     ‘‘‘
29     def setErrorFunc(self, err_func=None):
30         self.on_error_func = err_func
31         return self
32     ‘‘‘
33         设置是否遍历连接文件
34     ‘‘‘
35     def setFollowLinks(self, follow_links = False):
36         self.follow_links = follow_links
37         return self
38
39     ‘‘‘
40         获取迭代器
41     ‘‘‘
42     def getGenerator(self):
43         return os.walk(self.rootpath, self.tracersal_from_top_to_down, self.on_error_func, self.follow_links)
44
45     ‘‘‘
46         获取所有文件
47         @param absolute_path: 是否返回绝对路径,或者仅仅文件名
48     ‘‘‘
49     def getFiles(self,absolute_path=True):
50         files = []
51         for parent,dirnames,filenames in self.getGenerator():    #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字
52             for file in filenames:
53                 filepath = os.path.join(parent,file)
54                 files.append( filepath if absolute_path else file)
55         return files
56
57     ‘‘‘
58         获取当前目录下所有的文件(不递归遍历)
59         @
60     ‘‘‘
61     def getThisLevelFiles(self,absolute_path=True):
62         files = []
63         all_in_dir = os.listdir(self.rootpath)
64         for file in all_in_dir:
65             filepath = os.path.join(self.rootpath, file)
66             if not os.path.isdir(filepath):
67                 files.append(filepath if absolute_path else file)
68         return files

一般用法如下:

1 traversal = FileTraversal("/home/user/testdir")
2 traversal.setTopToDown(False).setErrorFunc(err_foo).setFollowLinks(True) #不设置,直接使用默认参数亦可
3 files = traversal.getFiles()
4 # do something with files ....

源文件: FileTraversal.py

时间: 2024-10-20 08:39:07

Python遍历文件夹的相关文章

python 遍历文件夹 文件

python 遍历文件夹 文件 import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirnames,filenames in os.walk(rootdir): #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字 for dirname in dirnames: #输出文件夹信息 print "parent is:" + parent print &q

python 遍历文件夹文件代码

import os def tree(top): for path, names, fnames in os.walk(top): for fname in fnames: yield os.path.join(path, fname) for name in tree('C:\Users\XXX\Downloads\Test'): print name python 遍历文件夹文件代码

python 遍历文件夹并统计文件数量

使用python遍历文件夹下的子文件夹及文件,并统计出文件夹下文件的数量: 1 import os 2 count = 0 3 4 5 # 遍历文件夹 6 def walkFile(file): 7 for root, dirs, files in os.walk(file): 8 # root 表示当前正在访问的文件夹路径 9 # dirs 表示该文件夹下的子目录名list 10 # files 表示该文件夹下的文件list 11 12 # 遍历文件 13 for f in files: 14

python遍历文件夹下的文件

在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法.下面列出: os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回多个路径中,所有path共有的最长的路径. os.path.dirname(path) #返回文件路径 os.path.exists(path)  #路径存在则返回True,路径损坏返回False os.path

Python遍历文件夹和读写文件的方法

本文和大家分享的主要是python开发中遍历文件夹和读写文件的相关内容,一起来看看吧,希望对大家学习和使用这部分内容有所帮助. 需 求 分 析 1.读取指定目录下的所有文件 2.读取指定文件,输出文件内容 3.创建一个文件并保存到指定目录 实 现 过 程 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Java写了一个写入.创建.复制.重命名文件要将近60行代码: 不过简洁的代价是牺牲了一点点运行速度,但随着硬件性能的提升,运行速度的差异会越来越小,直到人类无法察觉~ #

python遍历文件夹中所有文件夹和文件,os.walk

python中可以用os.walk来遍历某个文件夹中所有文件夹和文件. 例1: import os filePath = 'C:/Users/admin/Desktop/img' for dirpath, dirnames, filenames in os.walk(filePath): print(dirpath, dirnames, filenames) 输出结果: 例2: import os filePath = 'C:\\Users\\admin\\Desktop\\img' for d

Python遍历文件夹下的word文档并写入内容

import osimport docxspam=os.listdir('D:\\1')#获取文件夹下的word文档列表print(spam)for i in spam: doc=docx.Document('D:\\1\\{}'.format(i)) doc.add_paragraph('world') doc.save('D:\\1\\{}'.format(i))#注意在已有的word文档中写入之后要保存 原文地址:https://www.cnblogs.com/shunguo/p/1139

python遍历文件夹下文件

#方法1:使用os.listdir import os for filename in os.listdir(r'c:\\windows'): print filename #方法2:使用glob模块,可以设置文件过滤 import glob for filename in glob.glob(r'c:\\windows\\*.exe'): print filename #方法3:通过os.path.walk递归遍历,可以访问子文件夹 import os.path def processDire

python 遍历文件夹

方法一 : 利用函数 os.walk() os.walk() 会返回三元元组 (dirpath, dirnames, filenames)dirpath : 根路径 (字符串)dirnames : 路径下的所有目录名 (列表)filenames : 路径下的所有非目录文件名 (列表) 其中目录名和文件名都是没有加上根路径的,所以需要完整路径时需要将目录名或文件名与根路径连接起来.示例 : import os root = "C:\\dir" for dirpath, dirnames,