您的位置:首页 > 编程语言 > Python开发

Python 遍历文件夹中的指定类型文件

2015-09-28 17:16 711 查看
首先罗列一下os.path模块的相关函数:

1.判断型函数:

exists() 指定路径(文件或者目录)是否存在

isabs() 指定路径是否为绝对路径

isdir() 指定路径是否存在且为一个目录

isfile() 指定路径是否存在且为一个文件

islink() 指定路径是否存在且为一个符号链接

ismount() 指定路径是否存在且为一个挂载点

samefile() 两个路径名是否指向同一个文件

2.文件信息型函数:

getatime() 返回最近访问时间 (浮点型秒数)

getctime() 返回文件创建时间

getmtime() 返回最近文件修改时间

getsize() 返回文件大小 (字节为单位)

abspath() 返回绝对路径

normpath() 规范path字符串形式

最后两个函数的例子:

a = “dapei-imgs_21667c16-fff5-45ca-829b-cf509f9886bb.jpg”

os.path.abspath(a)

‘D:\Python27\user\dapei-imgs\_21667c16-fff5-45ca-829b-cf509f9886bb.jpg’

os.path.normpath(a)

‘dapei-imgs\_21667c16-fff5-45ca-829b-cf509f9886bb.jpg’

另外把a写成a = “dapei-imgs/_21667c16-fff5-45ca-829b-cf509f9886bb.jpg”

结果没变化

3.路径字符串操作函数:

一个完整的路径字符串分成 abspath = driver+path+filename(name+extname)

因为有一定的格式在其中,所以对路径字符串的操作原则上都是根据这些格式进行的。

基本的分割函数有3个,都是把字符串分割成两部分

split() 把路径分成两部分,依据符合“\”,第二部分是最后一个“\”符号的右边部分

splitdrive() 把路径中的驱动器名称分割到第一部分,没有则为空,依据“:”符号

splitext() 把路径中的文件扩展名分割到第二部分,没有则为空,依据“.”符号

以split()为基础,派生出的两个函数分别对应split()返回值的第一项和第二项

dirname()

basename()

最后是一个与split()对仗的操作

join() 把多个字符串拼接成路径,插入“\”符号

下面用一个遍历文件夹下的文件来说明上述函数的应用,在实际项目中,当然可以用os.walk()或者os.path.walk()来完成这个工作(程序设计的核心是设计的创意,而不是所处的宏观层次)。

import os
Const_Image_Format = [".jpg",".jpeg",".bmp",".png"]
class FileFilt:
fileList = [""]
counter = 0
def __init__(self):
pass
def FindFile(self,dirr,filtrate = 1):
global Const_Image_Format
for s in os.listdir(dirr):
newDir = os.path.join(dirr,s)
if os.path.isfile(newDir):
if filtrate:
if newDir and(os.path.splitext(newDir)[1] in Const_Image_Format):
self.fileList.append(newDir)
self.counter+=1
else:
self.fileList.append(newDir)
self.counter+=1

if __name__ == "__main__":
b = FileFilt()
b.FindFile(dirr = "D:\Python27\user\dapei-imgs")
print(b.counter)
for k in b.fileList:
print k
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: