python如何批量生成psd

 更新时间:2026年01月17日 09:54:32   作者:LMY~~  
文章总结:如何使用Python批量生成PSD文件,包括安装Python环境和ps的步骤,提供个人经验并鼓励大家支持脚本之家

python批量生成psd

在之前需要安装python环境和ps

来看实例

# -*- coding: utf-8 -*-
import win32com.client
import csv
import os

# 配置区(按需修改)=====================================
CSV_PATH = r'E:\psd\jobs.csv'  # 简历数据路径
PSD_TEMPLATE = r'E:\psd\zhaopin.psd'  # PSD模板路径
OUTPUT_FOLDER = r'E:\psd\output'  # 成品输出目录
TEXT_LAYER_MAP = {  # 图层名称与CSV列名对应关系
    'company': 'company',
    'position': 'position',
    'salary': 'salary'
}


# =====================================================

def main():
    # 创建Photoshop实例
    ps = win32com.client.Dispatch("Photoshop.Application")
    if ps:
        print("成功创建 Photoshop 实例")
    else:
        print("创建 Photoshop 实例失败")

    # 读取CSV数据
    with open(CSV_PATH, 'r', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        data = [row for row in reader]

    # 创建输出目录
    os.makedirs(OUTPUT_FOLDER, exist_ok=True)

    # 处理每条数据
    for index, item in enumerate(data, 1):
        # 复制模板文件
        output_psd = os.path.join(OUTPUT_FOLDER, f'招聘_{index}.psd')
        open(PSD_TEMPLATE, 'r')  # 检查模板是否存在
        doc = ps.Open(PSD_TEMPLATE)

        try:
            # 遍历所有图层
            for layer in doc.Layers:
                # 仅处理文本图层
                
                if layer.Kind == 2:  # 2表示文本图层
                    layer_name = layer.Name
                    if layer_name in TEXT_LAYER_MAP:
                        csv_column = TEXT_LAYER_MAP[layer_name]
                        new_text = str(item.get(csv_column, ''))

                        # 中文换行处理(每10个字符换行)
                        if len(new_text) > 10:
                            new_text = '\n'.join([new_text[i:i + 10] for i in range(0, len(new_text), 10)])

                        layer.TextItem.Contents = new_text

            # 导出为PNG
            png_path = output_psd.replace('.psd', '.png')
            export_options = win32com.client.Dispatch('Photoshop.ExportOptionsSaveForWeb')
            export_options.Format = 13  # PNG格式
            export_options.PNG8 = False  # 使用24位PNG
            doc.Export(ExportIn=png_path, ExportAs=2, Options=export_options)

            # 保存PSD
            doc.SaveAs(output_psd)
            print(f'已生成:{output_psd}')

        finally:
            doc.Close(2)  # 关闭文档不保存修改(因为已另存)


if __name__ == '__main__':
    main()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 一文深入学习Python中的os.listdir函数

    一文深入学习Python中的os.listdir函数

    这篇文章主要给大家介绍了关于Python中os.listdir函数的相关资料,os.listdir是 Python中的一个函数,它的意思是返回指定目录下的文件和文件夹的名称的列表,需要的朋友可以参考下
    2023-10-10
  • 利用 Python 让图表动起来

    利用 Python 让图表动起来

    这篇文章主要给大家分享如何利用 Python 让图表动起来,本文围绕Python 让图表动起来的话题举例matplotlib动画功能的一个例子展开文章内容,需要的朋友可以参考一下
    2021-10-10
  • Python代码需要缩进吗

    Python代码需要缩进吗

    在本篇文章里小编给大家整理了关于Python代码是否需要缩进的相关知识点内容,有兴趣的朋友们可以学习参考下。
    2020-07-07
  • PyPI版本号重复发布问题解决

    PyPI版本号重复发布问题解决

    本文主要介绍了PyPI版本号重复发布问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • OpenCV实现从灰度图像切出Mask前景区域

    OpenCV实现从灰度图像切出Mask前景区域

    本文主要介绍了如何利用OpenCV实现从灰度图像,根据阈值,切出多个前景区域,过滤面积太小的图像。文中的示例代码讲解详细,需要的可以参考一下
    2022-06-06
  • Python成功解决TypeError: ‘method’ object is not subscriptable

    Python成功解决TypeError: ‘method’ object is 

    在Python编程中,有时候我们可能会遇到一个让人摸不着头脑的错误信息:TypeError: 'method' object is not subscriptable,本文给大家介绍了Python如何成功解决TypeError: ‘method’ object is not subscriptable,需要的朋友可以参考下
    2024-06-06
  • Python中Toml配置文件的操作详解

    Python中Toml配置文件的操作详解

    TOML是一种用于配置文件的轻量级、易读的数据序列化格式,这篇文章主要为大家详细介绍了python如何对Toml配置文件进行简单操作,感兴趣的小伙伴可以了解下
    2023-09-09
  • tensorflow入门之训练简单的神经网络方法

    tensorflow入门之训练简单的神经网络方法

    本篇文章主要介绍了tensorflow入门之训练简单的神经网络方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • TensorFlow设置日志级别的几种方式小结

    TensorFlow设置日志级别的几种方式小结

    今天小编就为大家分享一篇TensorFlow设置日志级别的几种方式小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python人工智能实战之以图搜图的实现

    Python人工智能实战之以图搜图的实现

    这篇文章主要为大家详细介绍了如何基于vgg网络和Keras深度学习框架实现以图搜图功能。文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-05-05

最新评论