只读取给定图像序列路径中的第一个文件

2024-09-27 00:17:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个图像序列路径如下:/host_server/master/images/set01a/env_basecolor_default_v001/basecolor_default.*.jpg

  1. 以pythonic的方式,我是否可以编写代码并让它根据上面给出的文件路径读取第一个文件?

  2. 如果没有,我可以让它列出整个序列的序列,但只命名?假设在同一目录中有另一个名为basecolor_default_beta.*.jpg的序列

对于#2,如果我使用os.listdir('/host_server/master/images/set01a/env_basecolor_default_v001'),它将列出两个图像序列的文件


Tags: 文件图像路径masterenvdefaulthostserver
3条回答

read the first file based on the above file path given?

使用有效的^{}(如果需要找到的第一个文件的名称/路径):

import glob

path = '/host_server/master/images/set01a/env_basecolor_default_v001/basecolor_default.*.jpg'
it = glob.iglob(path)
first = next(it)

glob.iglob() - Return an iterator which yields the same values as glob() without actually storing them all simultaneously.

尝试使用^{}。比如:

import glob
import os
path = '/host_server/master/images/set01a/env_basecolor_default_v001'
pattern = 'basecolor_default.*.jpg'
filenames = glob.glob(os.path.join(path, pattern))
# read filenames[0]

最简单的解决方案似乎是使用几个函数。你知道吗

1)要获取所有完整文件路径,请使用

 main_path = "/host_server/master/images/set01a/env_basecolor_default_v001/"
 all_files = [os.path.join(main_path, filename) for filename in os.listdir(main_path)]

2)要只选择某种类型的,请使用过滤器。你知道吗

beta_files = list(filter(lambda x: "beta" in x, all_files))
beta_files.sort()

相关问题 更多 >

    热门问题