パンフレットなどをphotoshpで作ってデータ出稿するさいに、出力不要なレイヤーをチェックするための簡単なpythonスクリプト

たとえば、次のようなデータがあるとします。

contents_01-02.psd
contents_03-04.psd
contents_05-06.psd
contents_07-08.psd
contents_09-10.psd
contents_11-12.psd
contents_13-14.psd
contents_15-16.psd

pythonのPSDImageで各psdファイルの中のレイヤー名を抽出できます。

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
#PHOTOSHOPのレイヤー名を書き出す

from psd_tools import PSDImage
import sys
import os
import subprocess

#PSDのあるフォルダーで実行すること
cwd = os.getcwd()
files=os.listdir(str(cwd))

l=[]

#ファイル名を取得

for file in files:
    line=[]    
    if "psd" not in file:
        #print(file)
        continue

    #psdファイルのみ対象
    
    psd = PSDImage.open(file)
    line.append('----')
    line.append(file)
    line.append('----')

    for layer in psd.descendants():
    # print(layer.name)
        if "背景" == layer.name:
            layer.visible = False
        line.append(layer.name)
    d = "\n".join(line)
    l.append(d)

#全レイヤー名    
result="\n\n".join(l)

#ファイルに書き込む
with open('layer-name.txt', 'w') as f:
    f.write(result)

print(result)

#ついでにテキストエディタを立ち上げる<==macOSでの利用
subprocess.Popen(['open','layer-name.txt'])

実行すると

----
contents_01-02.psd
1132_photo
124_photo
長方形 1
長方形 1
長方形 1
長方形 1

----
contents_03-04.psd
----
127_photo
3533_photo  <−−−−これが不要
3533_photo_v2
長方形 1
長方形 1
長方形 1

以下略

などとなります。

途中次のようなwarningがでますが、気にしないことにします。

Unknown key: b’GenI’
Unknown tagged block: b’GenI’,

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です