码迷,mamicode.com
首页 > 编程语言 > 详细

Python 文件操作函数

时间:2016-10-06 17:01:03      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文件夹中。

python 文件处理主要用到 os 模块和 shutil 模块,‘sh‘ 大概是 bash 的意思

os.chdir(‘path‘) 改变当前路径到 path

os.listdir(‘path‘) 输出 path 路径下所有的文件名

os.makedirs(‘path/dirname‘) 在 path 路径下创建 dirname 文件夹

shutil.copy2(‘path/filename‘, ‘newpath‘) 将 path 路径下的 filename 文件拷贝到 newpath 路径下

 

场景:按照上面的教程,我们需要先下载 kaggle 猫狗识别大赛的源文件,分为 train 和 test1,解压后放到 cat_dog 文件夹,然后,我们将构建符合教程要求的文件目录,其结构如下图所示(注意文件名的变化):

data/
    train/
        dogs/
            dog001.jpg
            dog002.jpg
            ...
        cats/
            cat001.jpg
            cat002.jpg
            ...
    validation/
        dogs/
            dog001.jpg
            dog002.jpg
            ...
        cats/
            cat001.jpg
            cat002.jpg
            ...

依据教程要求,需要从 train 文件夹中将 cat.000.jpg 到 cat.999.jpg 拷贝到 data/cats/cat000.jpg 到 data/cats/cat999.jpg,将 cat.1000.jpg 到 cat.1399.jpg 拷贝到 validation/cats/cat000.jpg 到 validation/cats/cat399.jpg。同样的结构用于狗数据集的构建。

代码:

import shutil
import os

os.chdir(cat_dog)
os.makedirs(train)
os.makedirs(train/dogs)
os.makedirs(train/cats)
os.makedirs(validation)
os.makedirs(validation/dogs)
os.makedirs(validation/cats)

def getFileName(num, category):
    return category+.+str(num)+.jpg

def setFileName(num, category):
    num = str(num)
    num = (3-len(num))*0+num
    return category+num+.jpg

for num in range(1000):
    cat = getFileName(num, cat)
    dog = getFileName(num, dog)
    new_cat = setFileName(num, cat)
    new_dog = setFileName(num, dog)
    shutil.copy2(train1/+cat, train/cats/+new_cat)
    shutil.copy2(train1/+dog, train/dogs/+new_dog)

for num in range(400):
    cat = getFileName(1000+num, cat)
    dog = getFileName(1000+num, dog)
    new_cat = setFileName(num, cat)
    new_dog = setFileName(num, dog)
    shutil.copy2(train1/+cat, validation/cats/+new_cat)
    shutil.copy2(train1/+dog, validation/dogs/+new_dog)

 ps:为了使得构建的 train 与之前下载的 train 文件夹不重名,将之前的 train 文件夹改为 train1.

pps: 没注意看原教程要求,这里构建的 train 文件夹和 validation 文件夹应该放到 data 目录下,直接手动操作就好了。

Python 文件操作函数

标签:

原文地址:http://www.cnblogs.com/yinxiangnan-charles/p/5933946.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!