- os.list排序
>>> files=os.listdir(".")
>>> files.sort()
>>> print files
['1.txt', '10.txt', '11.txt', '2.txt', '3.txt']
>>> files.sort(key= lambda x:int(x[:-4]))
>>> print files
['1.txt', '2.txt', '3.txt', '10.txt', '11.txt']
- 随机排序
import random
random.shuffle (lst )
- 随机排序生成caffe用数据标签格式,参考Caffe 入门- caffe数据准备,格式转换
import os
import random
# input files' path
ROOT_DIR = '/home/knaffe/workspace/caffe-master/data/deepiddata/train' ##train文件夹的路径,如果要修改成其他,请注意这个路径的格式
# output files' path
OUTPUT_DIR = './pair.txt' ###生成的文件名。存放路径为/home/knaffe/workspace/caffe-master/data/deepiddata/
FORMAT = 'jpg' ###用来排除其他文件干扰,若读取到其他文件, caffe转化格式脚本create_imagenet.sh会报错。
if __name__ == '__main__':
if (ROOT_DIR.endswith('/') is not True):
ROOT_DIR += '/'
file = os.listdir(path=ROOT_DIR)
label = 0
with open(OUTPUT_DIR, 'w') as f:
for sub_file in file:
imglist = random.shuffle(os.listdir(ROOT_DIR + sub_file))
for img in imglist:
if (img.endswith(FORMAT) is not True):
continue
str_tmp = str(sub_file) + '/' + img + ' ' + str(label)
f.write(str_tmp + '\n')
print('Finish Processing')