【问题标题】:Want to get desired Image path using os.walk in python想要在 python 中使用 os.walk 获得所需的图像路径
【发布时间】:2021-12-09 18:37:42
【问题描述】:

我有一个名为 A 的文件夹,其中包括一些以字母 A 开头的子文件夹。 在这些子文件夹中放置了不同的图像(一些图像格式是 .png、jpeg、.giff 和 .webp,具有不同的名称 如 item1.png、item1.jpeg、item2.png、item3.png 等)。从这些子文件夹中,我想获取以 1 结尾的那些图像的路径列表。 除此之外,我只想获得 1 种图像文件格式,例如仅用于 jpeg。在某些子文件夹中,图像名称以 1.png、1.jpeg、1.giff 等结尾。 我只想要每个以 1 结尾的子文件夹中的一个图像。(任何图像格式)。我正在共享返回所有图像格式的项目图像路径(以 1 结尾)的代码。

代码:

【问题讨论】:

    标签: python os.walk ends-with


    【解决方案1】:

    这是可以解决您的问题的代码。

    import os
    img_paths = []
    for top,dirs, files in os.walk("your_path_goes_here"):
        for pics in files:
            if os.path.splitext(pics)[0] == '1':
                img_paths.append(os.path.join(top,pics))
                break
            
    

    img_paths 会有你需要的列表

    它将包含子文件夹中的第一张图像,名称为1,可以是任何格式。

    如果您想使用特定格式,

    import os
    img_paths = []
    for top,dirs, files in os.walk("your_path_goes_here"):
        for pics in files:
            if os.path.splitext(pics)[0] == '1' and os.path.splitext(pics)[1][1:] in ['png','jpg','tif']:
                img_paths.append(os.path.join(top,pics))
                break
    

    感谢 S3DEV 使其更加优化

    【讨论】:

    • 1) os.path.splitext 应该用于将文件名与其扩展名分开。 2)循环结束时不需要continue
    • @S3DEV,如果您阅读该问题,则该问题仅要求一个子文件夹中的一张图像,这就是我添加该图像的原因。此外,os.path.splitextsplit('.') 也是如此。
    • 那么,应该是break(返回父循环),不是吗?作为拆分,splitext 应该用作一般split 将失败(在极端情况下)文件名,例如this.file.png
    • @S3DEV 是的,你是对的,在那些极端情况下它可能会失败。我会相应地更新答案。谢谢你的教训人
    猜你喜欢
    • 2013-05-04
    • 1970-01-01
    • 2023-04-03
    • 2021-03-21
    • 2021-11-30
    • 2021-10-15
    • 2013-11-22
    • 2021-05-18
    相关资源
    最近更新 更多