将指定文件夹下指定格式文件名存储到txt内:
train/test文件夹下有一系列jpg图片,应用如下代码:
# -*- coding: utf-8 -*-
#将文件夹中图像的名字放在一个txt文件中
import os
def ListFilesToTxt(dir, file, wildcard, recursion):
exts = wildcard.split(" ")
files = os.listdir(dir)
for name in files:
fullname = os.path.join(dir, name)
if (os.path.isdir(fullname) & recursion):
ListFilesToTxt(fullname, file, wildcard, recursion)
else:
for ext in exts:
if (name.endswith(ext)):
file.write(name + "\n")
break
def ReadName(img_dir,out_file):
"""将指定文件夹下文件写入到txt内
Args:
img_dir : img路径
out_file : 输出txt路径
"""
wildcard = ".jpg" # 读取jpg图片
# wildcard = ".jpg .txt .exe .dll .lib" #要读取的文件类型;
file = open(out_file, "w")
if not file:
print("cannot open the file %s for writing" % out_file)
ListFilesToTxt(img_dir, file, wildcard, 1)
file.close()
train_img_dir = "/data/dataset/CatVsDog_Kaggle/train"
train_outfile = "data/train.txt"
test_img_dir = "/data/dataset/CatVsDog_Kaggle/test"
test_outfile = "data/test.txt"
ReadName(train_img_dir,train_outfile)
ReadName(test_img_dir,test_outfile)
则将其存到train.txt内,内容为:
cat.456.jpg
cat.5718.jpg
dog.603.jpg
dog.4832.jpg
cat.2474.jpg
dog.7514.jpg
dog.6394.jpg
cat.11321.jpg
dog.6519.jpg
cat.6717.jpg
dog.7261.jpg
cat.3414.jpg
读取Txt文件
f = open('train.txt')
img_labels = f.read().split()
f.close()