0

我们希望以 15.png、45.png、75.png 等形式访问 png 文件。这是我们得到的代码和输出

电流输出

import os
keypts_labels=[]
class_list=os.listdir('dataset')
for name in class_list:
    for image in os.listdir(f"dataset/{name}"):
        for item in os.listdir(f"dataset/{name}/{image}"):
            print(os.path.abspath(f"dataset/{name}/{image}/{item}"))
4

1 回答 1

1

当有简单的方法可以做到时,您不需要处理所有这些迭代逻辑。请参阅下面的方法

def list_files(from_folder):
    from glob import glob
    import pathlib
    # Use glob to get all files in the folder, based on the type
    png_files = glob(f"{from_folder}/**/*.png", recursive=True)
    # Use a numerical sort, using the file name prefix as the key
    png_files = sorted(png_files, key=lambda path: int(pathlib.Path(path).stem))
    
    print(png_files) #return it if you want

list_files("dataset")

这个函数实际上会列出你需要的东西。这假设所有 png 文件的名称都是有效数字,并且您只搜索 png 文件。

我希望从评论本身中理解逻辑。

于 2022-01-06T11:59:17.140 回答