前言
1.在图像处理中,经常要与文件和目录打交道,使用C++时般会用boost这个库来实现对文件的操作,如果应用python的话就可以使用pyhton的 os 及 shutill 模块,其中包含了很多操作文件和目录的函数,相对来说更便捷一些吧。
2.我这里演示的代码都是python2.7这个版本,是在linux编译的。
一、操作文件夹
1.遍历目录下的的所有文件
(1)递归遍历目录
import os
def gci(filepath):
#遍历filepath下所有文件,包括子目录
files = os.listdir(filepath)
for fi in files:
fi_d = os.path.join(filepath,fi)
if os.path.isdir(fi_d):
gci(fi_d)
else:
#输出
print os.path.join(filepath,fi_d)
#递归遍历/root目录下所有文件
gci('/home/linux/data/image/src')
(2)递归遍历目录并过滤掉不要的文件
import os
filter=[".png"] #设置过滤后的文件类型 当然可以设置多个类型
def gci(filepath):
#遍历filepath下所有文件,包括子目录
files = os.listdir(filepath)
for fi in files:
fi_d = os.path.join(filepath,fi)
if os.path.isdir(fi_d):
gci(fi_d)
else:
apath = os.path.join(filepath,fi_d)
ext = os.path.splitext(apath)[1]
if ext in filter:
print os.path.join(filepath,fi_d)
#递归遍历/root目录下所有文件
gci('/home/linux/图片')
二、文件操作
(1)移动指定文件
import os
import shutil
filter=['.jpg','.JPG'] #设置过滤后的文件类型 当然可以设置多个类型
dstPath = "/home/linux/data/image/gif/"
def gci(filepath):
#遍历filepath下所有文件,包括子目录
files = os.listdir(filepath)
for fi in files:
fi_d = os.path.join(filepath,fi)
if os.path.isdir(fi_d):
gci(fi_d)
else:
apath = os.path.join(filepath,fi_d)
ext = os.path.splitext(apath)[1]
if ext in filter:
filename0 = os.path.splitext(fi)[0]
#print filename0
print apath
dstFile = dstPath + filename0+'.jpg' #.jpg为你的文件类型,即后缀名
print dstFile
shutil.move(apath, dstFile)
#递归遍历/root目录下所有文件
gci('/home/linux/data/image/src')