字符串函数参数中缺少斜杠“ /”

时间:2018-10-21 22:28:12

标签: python python-3.x

def classify_images(images_dir = r"pet_images/", results_dic = None, model = 'resnet'):
    for key in results_dic:
        results_dic[key].append(classifier(images_dir + key, model).lower())
        if results_dic[key][0] in results_dic[key][1]:
            results_dic[key].append('1')
        else:
            results_dic[key].append('0')

classify_images(in_arg.dir, results, in_arg.arch)

此定义不起作用,因为images_dir字符串中的“ /”符号未传递给classifier()函数。当我将字符串直接放在分类器函数中时,它可以正常工作:

def classify_images(images_dir = r'pet_images/', results_dic = None, model = 'resnet'):
    for key in results_dic:
        results_dic[key].append(classifier('pet_images/' + key, model).lower())
        if results_dic[key][0] in results_dic[key][1]:
            results_dic[key].append('1')
        else:
            results_dic[key].append('0')

classify_images(in_arg.dir, results, in_arg.arch)

结果为:

FileNotFoundError: [Errno 2] No such file or directory: 'pet_imagesBasenji_00963.jpg'

有什么想法将函数定义作为默认参数放入时,为什么斜杠符号会消失?

2 个答案:

答案 0 :(得分:0)

您可以在in_arg.dir中查看print(in_arg.dir)的内容,并查看其内容是否与您期望的相同,在这种情况下,您的期望是pet_images/

或者,您可以将定义的关键字参数用于:

def classify_images(images_dir = r"pet_images/", results_dic = None, model = 'resnet'):
    for key in results_dic:
        results_dic[key].append(classifier(images_dir + key, model).lower())
        if results_dic[key][0] in results_dic[key][1]:
            results_dic[key].append('1')
        else:
            results_dic[key].append('0')

classify_images(images_dir = r"pet_images/", results_dic = results, mode = in_arg.arch)

答案 1 :(得分:0)

@ Tgsmith61591解决方案完美运行。

import os

def classify_images(images_dir = r"pet_images/", results_dic = None, model = 'resnet'):
    for key in results_dic:
        results_dic[key].append(classifier(os.path.join(images_dir, key), model).lower())
        if results_dic[key][0] in results_dic[key][1]:
            results_dic[key].append('1')
        else:
            results_dic[key].append('0')

classify_images(in_arg.dir, results, in_arg.arch)