新人请教一下怎么添加判断

2021-11-26 17:04:19 +08:00
 toyst

原代码:

def extract_features(img_dir, model):
    try:
        cache = Cache('./tmp')
        feats = []
        names = []
        img_list = get_imgs(img_dir)
        total = len(img_list)
        cache['total'] = total
        for i, img_path in enumerate(img_list):
            try:
                norm_feat = model.resnet50_extract_feat(img_path)
                feats.append(norm_feat)
                names.append(img_path.encode())
                cache['current'] = i + 1
                print(f"Extracting feature from image No. {i + 1} , {total} images in total")
            except Exception as e:
                LOGGER.error(f"Error with extracting feature from image {e}")
                continue
        return feats, names
    except Exception as e:
        LOGGER.error(f"Error with extracting feature from image {e}")
        sys.exit(1)

大概位置是下面这里:

def extract_features(img_dir, model):
    try:
        cache = Cache('./tmp')
        feats = []
        names = []
        img_list = get_imgs(img_dir)
        total = len(img_list)
        cache['total'] = total
        #check if img_dir is a image or image_path
        #if it is image, create embedding and return, else, traverse the directory
        for i, img_path in enumerate(img_list):
            #extract feature
        return feats, names
    except Exception as e:
        LOGGER.error(f"Error with extracting feature from image {e}")
        sys.exit(1)

请问一下应该如何写啊? 判断传入的是图片文件名还是目录

2426 次点击
所在节点    Python
7 条回复
corningsun
2021-11-26 17:23:54 +08:00
filetype ?
Latin
2021-11-26 17:27:16 +08:00
import os
flag = os.path.exists(dir_name)
from pathlib import Path
filePath = path("/data/mydir")
flag = True if filePath.is_dir() else False
advancejar
2021-11-26 17:29:54 +08:00
你是刚学吗?
str.endswith('.jpg')
还有就是
os.path.isdir
这个函数最准,但是有坑,千万多测试
deplivesb
2021-11-26 18:04:20 +08:00
看了下楼主的发帖记录。。。。
ChrisFreeMan
2021-11-26 18:08:24 +08:00
@deplivesb 面向 V2EX 编程
efaun
2021-11-26 19:05:09 +08:00
@deplivesb #4
@ChrisFreeMan #5
哈哈哈, 要不你们建个知识星球把楼主拉进去吧
imn1
2021-12-05 13:23:45 +08:00
文件系统的路径问题,建议 os.scandir 和 pathlib 比较省事,基本上就是特殊的字符串处理
如果要判断真实图片是需要导入内容的,例如文件头判断,就是 file signature

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/818195

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX