【问题标题】:FileNotFoundError: [Errno 2] No such file or directory: 'dataset_dog_breeds/train/airedale/airedale-87.jpgFileNotFoundError:[Errno 2] 没有这样的文件或目录:'dataset_dog_breeds/train/airedale/airedale-87.jpg
【发布时间】:2019-11-13 13:37:05
【问题描述】:

我有一个名为 labeled_data2 的文件夹。此文件夹包含犬种的图像。

每张图片都以狗的品种为前缀。

我正在尝试将所有图像从labeled_data2(按品种排序)移动到dataset_dog_breeds/traindataset_dog_breeds/test。下面是一个例子,说明它最终的样子:

          `dataset_dog_breeds/train/boxer/boxer.jpg`

现在,我不知道是否解决了我得到的错误(查看标题)是否会将所有图像从 labeled_data2 移动到它们各自的路径。但这是一个开始。

代码如下:

# organize dataset into a useful structure
from os import makedirs
from os import listdir
from shutil import copyfile
from random import seed
from random import random
# create directories
dataset_home = 'dataset_dog_breeds/'
subdirs = ['train/', 'test/']
for subdir in subdirs:
        # create label subdirectories
        labeldirs = ['affenpinscher/', 'afghan_hound/','african_hunting_dog/'
                     'airedale/', 'american_staffordshire_terrier/',
                     'appenzeller/', 'australian_terrier/', 'basenji/',
                     'basset/', 'beagle/', 'bedlington_terrier/', 'bernese_mountain_dog/',
                     'black-and-tan_coonhound/', 'blenheim_spaniel/', 'bloodhound/',
                     'bluetick/', 'border_collie/', 'border_terrier/', 'borzoi/',
                     'boston_bull/', 'bouvier_des_flandres/', 'boxer/', 'brabancon_griffon/',
                     'briard/', 'brittany_spaniel/', 'bull_mastiff/', 'cairn/', 'cardigan/',
                     'chesapeake_bay_retriever/', 'chihuahua/', 'chow/', 'clumber/',
                     'cocker_spaniel/', 'collie/', 'curly-coated_retriever/', 'dandie_dinmont/',
                     'dhole/', 'dingo/', 'doberman/', 'english_foxhound/', 'english_setter/',
                     'english_springer/', 'entlebucher/', 'eskimo_dog/']
        for labldir in labeldirs:
                newdir = dataset_home + subdir + labldir
                makedirs(newdir, exist_ok=True)
# seed random number generator
seed(1)
# define ratio of pictures to use for validation
val_ratio = 0.25
# copy training dataset images into subdirectories
src_directory = 'labeled_data2/'
for file in listdir(src_directory):
        src = src_directory + '/' + file
        dst_dir = 'train/'
        if random() < val_ratio:
                dst_dir = 'test/'
        if file.startswith('affenpinscher'):
                dst = dataset_home + dst_dir + 'affenpinscher/'  + file
                copyfile(src, dst)
        if file.startswith('afghan_hound'):
                dst = dataset_home + dst_dir + 'afghan_hound/'  + file
                copyfile(src, dst)
        if file.startswith('african_hunting_dog'):
                dst = dataset_home + dst_dir + 'african_hunting_dog/'  + file
                copyfile(src, dst)
        if file.startswith('airedale'):
                dst = dataset_home + dst_dir + 'airedale/'  + file
                copyfile(src, dst)
        if file.startswith('american_staffordshire_terrier'):
                dst = dataset_home + dst_dir + 'american_staffordshire_terrier/'  + file
                copyfile(src, dst)
        if file.startswith('appenzeller'):
                dst = dataset_home + dst_dir + 'appenzeller/'  + file
                copyfile(src, dst)
        if file.startswith('australian_terrier'):
                dst = dataset_home + dst_dir + 'australian_terrier/'  + file
                copyfile(src, dst)
        if file.startswith('basenji'):
                dst = dataset_home + dst_dir + 'basenji/'  + file
                copyfile(src, dst)
        if file.startswith('basset'):
                dst = dataset_home + dst_dir + 'basset/'  + file
                copyfile(src, dst)
        if file.startswith('beagle'):
                dst = dataset_home + dst_dir + 'beagle/'  + file
                copyfile(src, dst)
        if file.startswith('bedlington_terrier'):
                dst = dataset_home + dst_dir + 'bedlington_terrier/'  + file
                copyfile(src, dst)
        if file.startswith('bernese_mountain_dog'):
                dst = dataset_home + dst_dir + 'bernese_mountain_dog/'  + file
                copyfile(src, dst)
        if file.startswith('black-and-tan_coonhound'):
                dst = dataset_home + dst_dir + 'black-and-tan_coonhound/'  + file
                copyfile(src, dst)
        if file.startswith('blenheim_spaniel'):
                dst = dataset_home + dst_dir + 'blenheim_spaniel/'  + file
                copyfile(src, dst)
        if file.startswith('bloodhound'):
                dst = dataset_home + dst_dir + 'bloodhound/'  + file
                copyfile(src, dst)
        if file.startswith('bluetick'):
                dst = dataset_home + dst_dir + 'bluetick/'  + file
                copyfile(src, dst)
        if file.startswith('border_collie'):
                dst = dataset_home + dst_dir + 'border_collie/'  + file
                copyfile(src, dst)
        if file.startswith('afghan_hound'):
                dst = dataset_home + dst_dir + 'afghan_hound/'  + file
                copyfile(src, dst)
        if file.startswith('afghan_hound'):
                dst = dataset_home + dst_dir + 'afghan_hound/'  + file
                copyfile(src, dst)
        if file.startswith('bedlington_terrier'):
                dst = dataset_home + dst_dir + 'bedlington_terrier/'  + file
                copyfile(src, dst)
        if file.startswith('bernese_mountain_dog'):
                dst = dataset_home + dst_dir + 'bernese_mountain_dog/'  + file
                copyfile(src, dst)
        if file.startswith('black-and-tan_coonhound'):
                dst = dataset_home + dst_dir + 'black-and-tan_coonhound/'  + file
                copyfile(src, dst)
        if file.startswith('blenheim_spaniel'):
                dst = dataset_home + dst_dir + 'blenheim_spaniel/'  + file
                copyfile(src, dst)
        if file.startswith('bloodhound'):
                dst = dataset_home + dst_dir + 'bloodhound/'  + file
                copyfile(src, dst)
        if file.startswith('bluetick'):
                dst = dataset_home + dst_dir + 'bluetick/'  + file
                copyfile(src, dst)
        if file.startswith('border_collie'):
                dst = dataset_home + dst_dir + 'border_collie/'  + file
                copyfile(src, dst)
        if file.startswith('border_terrier'):
                dst = dataset_home + dst_dir + 'border_terrier/'  + file
                copyfile(src, dst)
        if file.startswith('borzoi'):
                dst = dataset_home + dst_dir + 'borzoi/'  + file
                copyfile(src, dst)
        if file.startswith('bouvier_des_flandres'):
                dst = dataset_home + dst_dir + 'bouvier_des_flandres/'  + file
                copyfile(src, dst)
        if file.startswith('boxer'):
                dst = dataset_home + dst_dir + 'boxer/'  + file
                copyfile(src, dst)
        if file.startswith('brabancon_griffon'):
                dst = dataset_home + dst_dir + 'brabancon_griffon/'  + file
                copyfile(src, dst)
        if file.startswith('briard'):
                dst = dataset_home + dst_dir + 'briard/'  + file
                copyfile(src, dst)
        if file.startswith('brittany_spaniel'):
                dst = dataset_home + dst_dir + 'brittany_spaniel/'  + file
                copyfile(src, dst)
        if file.startswith('bull_mastiff'):
                dst = dataset_home + dst_dir + 'bull_mastiff/'  + file
                copyfile(src, dst)
        if file.startswith('cairn'):
                dst = dataset_home + dst_dir + 'cairn/'  + file
                copyfile(src, dst)
        if file.startswith('cardigan'):
                dst = dataset_home + dst_dir + 'cardigan/'  + file
                copyfile(src, dst)
        if file.startswith('chesapeake_bay_retriever'):
                dst = dataset_home + dst_dir + 'chesapeake_bay_retriever/'  + file
                copyfile(src, dst)
        if file.startswith('chihuahua'):
                dst = dataset_home + dst_dir + 'chihuahua/'  + file
                copyfile(src, dst)
        if file.startswith('chow'):
                dst = dataset_home + dst_dir + 'chow/'  + file
                copyfile(src, dst)
        if file.startswith('clumber'):
                dst = dataset_home + dst_dir + 'clumber/'  + file
                copyfile(src, dst)
        if file.startswith('cocker_spaniel'):
                dst = dataset_home + dst_dir + 'cocker_spaniel/'  + file
                copyfile(src, dst)
        if file.startswith('collie'):
                dst = dataset_home + dst_dir + 'collie/'  + file
                copyfile(src, dst)
        if file.startswith('curly-coated_retriever'):
                dst = dataset_home + dst_dir + 'curly-coated_retriever/'  + file
                copyfile(src, dst)
        if file.startswith('dandie_dinmont'):
                dst = dataset_home + dst_dir + 'dandie_dinmont/'  + file
                copyfile(src, dst)
        if file.startswith('dhole'):
                dst = dataset_home + dst_dir + 'dhole/'  + file
                copyfile(src, dst)
        if file.startswith('dingo'):
                dst = dataset_home + dst_dir + 'dingo/'  + file
                copyfile(src, dst)
        if file.startswith('doberman'):
                dst = dataset_home + dst_dir + 'doberman/'  + file
                copyfile(src, dst)
        if file.startswith('english_foxhound'):
                dst = dataset_home + dst_dir + 'english_foxhound/'  + file
                copyfile(src, dst)
        if file.startswith('english_setter'):
                dst = dataset_home + dst_dir + 'english_setter/'  + file
                copyfile(src, dst)
        if file.startswith('english_springer'):
                dst = dataset_home + dst_dir + 'english_springer/'  + file
                copyfile(src, dst)
        if file.startswith('entlebucher'):
                dst = dataset_home + dst_dir + 'entlebucher/'  + file
                copyfile(src, dst)
        elif file.startswith('eskimo_dog'):
            dst = dataset_home + dst_dir + 'eskimo_dog/'  + file
            copyfile(src, dst)

【问题讨论】:

  • 可能看起来微不足道,但文件名是否不正确? - 我的意思是它的文件名/文件夹拼写正确 - 通常简单的小事情会导致最烦人的错误
  • @JackWright 我想是的。我会仔细检查。
  • 这是要创建目录还是您自己创建的?
  • @JackWright 该程序假设创建目录和子目录。

标签: python machine-learning deep-learning


【解决方案1】:

我收到错误的原因是一个小错误。在labeldirs 列表中,我忘了在'african_hunting_dog/' 后面加逗号。

【讨论】:

  • 啊分号后面的逗号第二名捉迷藏冠军!
  • 那我建议你考虑删除问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-03
  • 2021-08-24
  • 2021-03-07
  • 2015-06-09
  • 2021-04-01
  • 2021-10-15
相关资源
最近更新 更多