You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用psd-tools修改PSD文本层报错:TypeLayer的text无setter属性

解决psd-tools修改PSD文本层时的AttributeError问题

报错原因

AttributeError: property 'text' of 'TypeLayer' object has no setter 这个错误的核心原因是:psd-tools库中TypeLayer类的text属性是只读属性,仅提供文本读取的方法(getter),没有开放直接赋值的接口(setter),所以直接通过number_layer.text = "Smth"赋值会触发该错误。

正确修改文本层内容的方法

要修改PSD文本层的内容,需要通过TypeLayer的engine_dict对象来操作,完整步骤如下:

  1. 定位目标文本层
  2. 使用engine_dict.set_text()方法设置新文本
  3. 保存修改后的PSD文件

修改后的完整代码:

from psd_tools import PSDImage

psd = PSDImage.load("raw.psd")
# 定位目标文本层,用next替代list(filter)更高效
number_layer = next(layer for layer in psd.descendants() if layer.name == "some cool layer")

# 查看原文本(可选操作)
print(number_layer.text)
# 修改文本内容
number_layer.engine_dict.set_text("Smth")
# 保存修改后的文件
psd.save("modified.psd")

内容的提问来源于stack exchange,提问作者sa1lormoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:52:45