os.walk()函数
os.walk(path)返回三个值:root,dirs,files,分别表示path的路径、path路径下的文件夹的名字和path路径下文件夹以外的其他文件;
【training_images文件下有三个物品类别文件夹,每个物品类别文件夹下有一些命名的图片】
代码如下:
import os
import sys
input_folder='/home/XXX/tensorflow/Python-Machine-Learning-Cookbook-master/Chapter09/training_images'
training_data=[]
for root, dirs, files in os.walk(input_folder):
for filename in (x for x in files if x.endswith('.jpg')):
filepath = os.path.join(root, filename)
object_class = filepath.split('/')[-2]
training_data.append({'object_class': object_class,
'image_path': filepath})
print root,
#/home/huanglong/tensorflow/Python-Machine-Learning-Cookbook-master/Chapter09/training_images/airplanes
print dirs
#[]
print files
#['0007.jpg', '0010.jpg', '0015.jpg', '0005.jpg', '0011.jpg', '0004.jpg', '0002.jpg', '0019.jpg', '0008.jpg', '0020.jpg', '0001.jpg', '0013.jpg', '0012.jpg', '0014.jpg', '0018.jpg', '0017.jpg', '0009.jpg', '0003.jpg', '0006.jpg', '0016.jpg', '.DS_Store']
print filepath ,object_class
#home/xxx/tensorflow/Python-Machine-Learning-Cookbook-master/Chapter09/training_images/airplanes/0016.jpg airplanes
os.listdir()函数
该函数返回指定的文件夹包含的文件或文件夹的名字的列表。
from os import listdir
import operator
trainingFileList = listdir('/home/huanglong/tensorflow/machinelearninginaction/Ch02/trainingDigits') #load the training set
m = len(trainingFileList)
print trainingFileList
#['6_56.txt', '5_48.txt', '3_122.txt', '0_123.txt', '5_52.txt', '3_1.txt']
for i in range(m):
trainingFileList[i]=trainingFileList[i].split('.')[0]+'1'+str('.')+trainingFileList[i].split('.')[1]
print trainingFileList
#['6_561.txt', '5_481.txt', '3_1221.txt', '0_1231.txt', '5_521.txt', '3_11.txt']