如何按每隔一个的频率提取文件夹中的文件?(Python代码优化)
实现每隔一张图片提取的方案
以下两种方法都能帮你实现只提取每隔一张图片的需求:
方法1:通过索引判断筛选
用enumerate给每个文件加上索引,只处理索引为偶数(或奇数)的文件,灵活控制取哪间隔的图片:
# Load original Images org_images_path = fr"/wormbot/{lifespan_number}" # 先筛选出所有以frame开头的文件并排序 target_files = sorted(f for f in os.listdir(org_images_path) if f.startswith("frame")) # 遍历文件,仅处理索引为偶数的文件(取第1、3、5...张) for idx, org_image in enumerate(target_files): if idx % 2 == 0: image_path = os.path.join(org_images_path, org_image) get_image = os.path.getmtime(image_path) # 在这里添加你的图片提取逻辑
如果需要取第2、4、6...张,把判断条件改成idx % 2 == 1即可。
方法2:直接对文件列表切片
利用Python列表切片的步长特性,直接从排序后的文件列表中每隔一个取一个,代码更简洁:
# Load original Images org_images_path = fr"/wormbot/{lifespan_number}" # 筛选、排序后,用[::2]步长取每隔一个的文件 for org_image in sorted(f for f in os.listdir(org_images_path) if f.startswith("frame"))[::2]: image_path = os.path.join(org_images_path, org_image) get_image = os.path.getmtime(image_path) # 在这里添加你的图片提取逻辑
同样,要取第2、4、6...张,把切片改成[1::2]就行。
内容的提问来源于stack exchange,提问作者Colton Pelletier
相关产品推荐
相关产品推荐

