2017-09-22 9 views
0

J'ai une situation un peu bizarre que je vais essayer d'expliquer du mieux que je peux. J'utilise Python pour lancer photoshop et lancer un fichier javascript. Mais mon but est que python génère d'abord le javascript, puis l'exécute dans photoshop. Pour ce faire, j'ai python copiant le fichier javascript, puis en remplaçant une seule ligne de code et en exécutant cette nouvelle copie. Lorsque j'exécute le fichier javascript d'origine, cela fonctionne comme prévu sans problème. Lorsque j'exécute le fichier javascript copié, cela fonctionne comme prévu sans problème.Photoshop 8800 Erreur seulement après que Python ait créé le fichier

Lorsque j'exécute le fichier javascript copié dont la ligne a été remplacée, une erreur 8800 s'affiche.

À ce stade, même si je tape manuellement la ligne remplacée pour correspondre au fichier javascript d'origine. Je vais toujours avoir une erreur 8800.

Est-ce que python écrit des fichiers différemment?

Voici le code que je utilise pour remplacer la copie et remplacer le contenu javascript:

from shutil import copyfile 
 

 

 
jsx_file = r'E:\PS\_javascript_constructor_template.jsx' 
 
jsx_file_new = r'E:\PS\_javascript_constructor_template_new.jsx' 
 
copyfile(jsx_file, jsx_file_new) 
 

 
with open(jsx_file_new, "r") as fin: 
 
    data = fin.read() 
 
    with open(jsx_file_new, "w") as fout: 
 
     fout.write(data.replace("!REPLACEME!",'"E:\PS\MockVar.csv"'))

Toutes les idées? SIDE NOTE: Je ne fais que parce que je ne sais pas comment passer un argument de Python dans le fichier javascript je suis appel de sous-processus.

Je préfère envoyer un argument au fichier javascript plutôt que de créer de nouveaux fichiers en entier.

Répondre

0

Si vous préférez envoyer un argument au script Photoshop, je vous recommande d'utiliser la communication interprocessus. Vous pouvez utiliser le module socket en Python et l'objet Socket dans Extendscript pour envoyer des messages en avant et en arrière. Consultez Outils de communication externes dans le Adobe Tools Guide pour plus d'informations.