如何用Python垂直拼接250张PNG并填充文件路径列表list_im
填充目录下PNG文件路径到列表的方法
你可以用以下两种常用方式快速获取目录下所有PNG文件的完整路径,填充到list_im列表中:
方法一:使用glob模块(最简便)
glob模块专门用于文件路径匹配,一行代码就能搞定:
import glob import os # 替换为你的图片目录路径,当前目录直接写 '.' 即可 image_dir = "./your_png_folder" # 获取目录下所有.png文件的完整路径 list_im = glob.glob(os.path.join(image_dir, "*.png"))
os.path.join用来拼接路径,避免Windows和Linux路径分隔符不兼容的问题*.png会匹配所有后缀为.png的文件,大小写敏感,如需匹配PNG/PNg等格式,可改成*.[pP][nN][gG]
方法二:使用os模块手动过滤(更灵活)
如果需要额外过滤文件(比如排除子目录、只保留特定命名规则的文件),可以用os模块:
import os image_dir = "./your_png_folder" list_im = [] for file_name in os.listdir(image_dir): # 检查文件后缀是否为.png(转小写实现大小写不敏感匹配) if file_name.lower().endswith(".png"): full_path = os.path.join(image_dir, file_name) # 确保是文件而非子目录 if os.path.isfile(full_path): list_im.append(full_path)
可选:按文件名排序
如果你的PNG文件是按顺序命名的(比如img_001.png、img_002.png),建议对列表排序,避免拼接顺序混乱:
# 方式1:使用第三方库natsort(推荐,支持自然排序) import natsort list_im = natsort.natsorted(list_im) # 方式2:手动提取文件名中的数字排序(无需额外安装库) list_im.sort(key=lambda path: int(os.path.splitext(os.path.basename(path))[0].split("_")[-1]))
把上述代码替换你原代码中list_im = []的部分,就能正常读取所有PNG文件进行垂直拼接了。
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

