パンフレットなどをphotoshopでデータ出稿するさいに、出力不要なレイヤーをチェックするための簡単な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’,