如何使用Python访问不同目录下的PNG文件并完成合并?
跨目录PNG合并解决方案
核心思路是通过脚本所在绝对路径定位目标文件,避免依赖运行时工作目录导致的路径找不到问题,可参考以下实现:
import os from PIL import Image # 获取当前main.py脚本的绝对目录,不受运行时工作目录影响 SCRIPT_ROOT = os.path.dirname(os.path.abspath(__file__)) # 配置PNG文件所在目录,支持两种写法: # 1. 绝对路径(直接写全路径,和脚本位置无关),示例:PNG_FOLDER = r"C:\design\layers" 或者 PNG_FOLDER = "/home/user/layers" # 2. 相对于脚本的相对路径,示例:脚本上层目录的layers文件夹: PNG_FOLDER = os.path.join(SCRIPT_ROOT, "..", "your_layers_folder") # 拼接得到完整的文件路径,自动适配不同系统的路径分隔符 layer1 = Image.open(os.path.join(PNG_FOLDER, "layer1.png")).convert("RGBA") layer2 = Image.open(os.path.join(PNG_FOLDER, "layer2.png")).convert("RGBA") # 合并后可保存到任意指定路径,示例保存到脚本同级的output目录 output_path = os.path.join(SCRIPT_ROOT, "output", "merged.png") os.makedirs(os.path.dirname(output_path), exist_ok=True) Image.alpha_composite(layer1, layer2).save(output_path)
注意事项
- 所有路径拼接统一使用
os.path.join(),自动适配Windows、Linux、macOS的路径分隔符,避免手动写/或\出现跨平台兼容问题 - 调用
Image.alpha_composite前需保证两张输入图像的分辨率完全一致,否则会触发尺寸不匹配异常 os.makedirs的exist_ok=True参数可自动创建不存在的父目录,无需手动提前创建输出文件夹
内容的提问来源于stack exchange,提问作者biscuitbreaker
相关产品推荐
相关产品推荐

