python使用笔记(一)——遍历文件夹下的所有子目录

    xiaoxiao2022-07-03  200

    前言

    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')
    最新回复(0)