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

前言

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')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知来者逆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值