python - 无法正确读取文件
问题描述
我正在尝试将我的数据集拆分为测试训练和验证。我正在阅读我读过的一本书,但使用本书语法时出现错误。我尝试用 '\' 甚至用 '\' 替换 '/' 但我无法解决问题。代码:
# --> Listing 5.4 Copying Images to training, validation and test direcotries
import os, shutil
# Path to the directory where the original DS was uncompressed
original_dir = 'datasets/catsvdogs'
# Directory to store my smaller dataset
base_dir = 'datasets/catsvdogs_small'
os.mkdir(base_dir)
# Directories for the training, validation, and test splits
train_dir = os.path.join(base_dir, 'train')
os.mkdir(train_dir)
validation_dir = os.path.join(base_dir, 'valid')
os.mkdir(validation_dir)
test_dir = os.path.join(base_dir, 'test')
os.mkdir(test_dir)
# Directory with training cat pictures
train_cats_dir = os.path.join(train_dir, 'cats')
os.mkdir(train_cats_dir)
# Directory with training dog pictures
train_dogs_dir = os.path.join(train_dir, 'dogs')
os.mkdir(train_dogs_dir)
# Directory with validation cat pictures
validation_cats_dir = os.path.join(validation_dir, 'cats')
os.mkdir(validation_cats_dir)
# Directory with validation dog pictures
validation_dogs_dir = os.path.join(validation_dir, 'dogs')
os.mkdir(validation_dogs_dir)
# Directory with test cat pictures
test_cats_dir = os.path.join(test_dir, 'cats')
os.mkdir(test_cats_dir)
# Directory with test dog pictures
test_dogs_dir = os.path.join(test_dir, 'dogs')
os.mkdir(test_dogs_dir)
# Copying the first 1000 cat images to train_cats_dir
fnames = ['cat.{}.jpg'.format(i) for i in range(1000)]
for fname in fnames:
src = os.path.join(original_dir + 'train', fname)
dst = os.path.join(train_cats_dir, fname)
shutil.copyfile(src, dst)
# Copying the next 500 cat images to validation_cats_dir
fnames = ['cat.{}.jpg'.format(i) for i in range(1000, 1500)]
for fname in fnames:
src = os.path.join(original_dir, fname)
dst = os.path.join(validation_cats_dir, fname)
shutil.copyfile(src, dst)
# Copying the next 500 cat images to test_cats_dir
fnames = ['cat.{}.jpg'.format(i) for i in range(1500, 2000)]
for fname in fnames:
src = os.path.join(original_dir, fname)
dst = os.path.join(test_cats_dir, fname)
shutil.copyfile(src, dst)
# Copying the first 1000 dog images to train_dogs_dir
fnames = ['dog.{}.jpg'.format(i) for i in range(1000)]
for fname in fnames:
src = os.path.join(original_dir, fname)
dst = os.path.join(train_dogs_dir, fname)
shutil.copyfile(src, dst)
# Copying the next 500 dog images to validation_dogs_dir
fnames = ['dog.{}.jpg'.format(i) for i in range(1000, 1500)]
for fname in fnames:
src = os.path.join(original_dir, fname)
dst = os.path.join(validation_dogs_dir, fname)
shutil.copyfile(src, dst)
# Copying the next 500 dog images to test_dogs_dir
fnames = ['dog.{}.jpg'.format(i) for i in range(1500, 2000)]
for fname in fnames:
src = os.path.join(original_dir, fname)
dst = os.path.join(test_dogs_dir, fname)
shutil.copyfile(src, dst)
# Checking Images
print('Total train cat: ', len(os.listdir(train_cats_dir)))
print('Total train dog: ', len(os.listdir(train_dogs_dir)))
print('Total validation cat: ', len(os.listdir(validation_cats_dir)))
print('Total validation dog: ', len(os.listdir(validation_dogs_dir)))
print('Total test cat: ', len(os.listdir(test_cats_dir)))
print('Total test dog: ', len(os.listdir(test_dogs_dir)))
错误:
File "catsdogs.py", line 58, in <module>
shutil.copyfile(src, dst)
File "C:\Users\Leaf\AppData\Local\Programs\Python\Python36\lib\shutil.py", line 120, in copyfile
with open(src, 'rb') as fsrc:
FileNotFoundError: [Errno 2] No such file or directory: 'datasets/catsready exists: 'datasets/vdogstrain\\cat.0.jpg'
我想知道为什么它使用'\'搜索图像。图像都在那里,我只是不知道如何使用 os 访问它们。从错误的外观来看,它在我的第一个 for 循环中停止,用于将部分图像移动到另一个文件夹。
解决方案
推荐阅读
- python-2.7 - “模块”对象没有属性“模式”
- html - 如何制作一个线性渐变 CSS 背景来填充整个背景而不在底部切断?
- javascript - Reactjs 表单不起作用继续重置 eventChange 上的值
- xmlhttprequest - 如何在 Loopback 中有文本请求正文?
- django - 出现错误 500 时,Django 没有给我发送电子邮件
- r - 将带引号的列表转换为 dplyr::filter 的带引号的表达式列表
- android - 在 WebApp net::ERR-UNKNOWN-URL-SCHEME 中打开 Native Apps
- mysql - 无法选择 uuid = (number) 的行
- javascript - 无法操作来自 axios 获取请求的数据
- java - 是否可以在不下载图像的情况下显示存储在谷歌驱动器上的 java swing 图像?