python将指定文件夹下指定格式文件名存储到txt内,并读取txt文件。

将指定文件夹下指定格式文件名存储到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()

猜你喜欢

转载自blog.csdn.net/qq_44554428/article/details/124079431
今日推荐