这个博客是 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))*''+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 文件操作函数的更多相关文章

  1. Python文件操作函数os.open、io.open、内置函数open之间的关系

    Python提供了多种文件操作方式,这里简单介绍os.open.io.open.内置函数open之间的关系: 一.内置函数open和io.open实际上是同一个函数,后者是前者的别名: 二.os.op ...

  2. Python文件操作与函数目录

    文件操作 python文件操作 函数 Python函数学习——初步认识 Python函数学习——作用域与嵌套函数 Python函数学习——匿名函数 python内置函数 Python函数学习——递归 ...

  3. python 文件操作(转)

    python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目 ...

  4. python文件操作

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  5. 关于python文件操作

    http://www.cnblogs.com/rollenholt/archive/2012/04/23/2466179.html 总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理 ...

  6. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  7. 关于python文件操作 (转载)

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  8. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  9. python文件操作精髓

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

随机推荐

  1. C# 发送HttpWebRequest获得网络图片的大小、尺寸

    可以通过HttpWebRequest的方式发送一个网络图片的请求,再通过HttpWebResponse接收返回的数据,分析数据流得到图片的大小以及尺寸,代码如下: /// <summary> ...

  2. 开启Win7系统管理员Administrator账户

    Win7系统凭借酷炫的界面以及简单.易用.快速.安全等特点,迅速成为全球最受用户喜爱的操作系统,如今Win7已经成为身边很多朋友生活学习工作的好伙伴.在我们使用Win7的时候,有一些软件的正常运行需要 ...

  3. ros语音交互(四)移植科大讯飞语音识别到ros

    将以前下载的的语音包的 samples/iat_record/的iat_record.c speech_recognizer.c speech_recognizer.c 拷贝到工程src中, linu ...

  4. Winform 支持高清屏(High DPI) 设置

    http://www.cnblogs.com/weiym/p/3555068.htmlhttp://crsouza.com/2015/04/how-to-fix-blurry-windows-form ...

  5. java培训第一天--画板

    package day1; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt ...

  6. MFC -- 遍历Dialog中的子元素(控件)

    CWnd *win = GetWindow(GW_CHILD);//获取第一个子控件 while(win) { win代表子控件,可以通过win来获取子控件的信息,如下述两行代码 //iCtrlId ...

  7. JAVA 中文转GBK内码方法

    不能谷歌,百度了很久,没有直接的转换方法,参考 byte[]数组与十六进制字符串与字符串的互相转换 http://blog.163.com/roadwalker@126/blog/static/113 ...

  8. cocoapods无法使用(mac os 10.11升级导致pod: command not found)

    之前安装了cocoapods, 那么输入 : sudo gem install -n /usr/local/bin cocoapods 如果还不行的话 首先在终端输入 gem sources -l 查 ...

  9. 7月17日——高校就业信息网站功能及数据获取之python爬虫

    本周我们小组在分析上周用户需求之后,确定了网站的主要框架和功能.数据收集和存储方式,以及项目任务分配. 一.网站的主要框架和功能. 网站近期将要实现的主要功能有,先重点收集高校(华东五校)就业宣讲会的 ...

  10. NAT123内网映射端口

    在无内网路由管理员权限的情况下,需要将内网web应用暴露到公网访问,此时需要用到花生壳或者nat123(两个应用都不是免费的,其中花生壳可以8元认证,以后免费使用,nat123按天收费) 花生壳 ht ...