Python and Javascript equivalence

S

Sam the Cat

Hey All,

I am writing some COM code in Python to control photoshop. Several
functions of PS require an "Array" argument. In the examples of VBscript or
javascript the Array type is used. I have tried what would appear to be the
equivalent in Python -- Lists and Tuples -- but to no avail. Anyone have
any insight on what via the COM interface is equivalent to an Array in
javascript ?

Cheers
Sam
 
P

Prateek

Try creating a dict with sequential numeric keys.

If you already have a list called my_list, you can do:

com_array = dict(zip(range(len(my_list)), my_list))

This works when you want to convert Python objects to Javascript using
JSON. It may work for you.

-Prateek
 
7

7stud

Hey All,

I am writing some COM code in Python to control photoshop. Several
functions of PS require an "Array" argument. In the examples of VBscript or
javascript the Array type is used. I have tried what would appear to be the
equivalent in Python -- Lists and Tuples -- but to no avail. Anyone have
any insight on what via the COM interface is equivalent to an Array in
javascript ?

Cheers
Sam

See if the python array type works:

import array

y = array.array("i", [2,3,4])
print y
 
M

Marc 'BlackJack' Rintsch

Try creating a dict with sequential numeric keys.

If you already have a list called my_list, you can do:

com_array = dict(zip(range(len(my_list)), my_list))

com_array = dict(enumerate(my_list))

That doesn't create the intermediate lists.

Ciao,
Marc 'BlackJack' Rintsch
 
S

Steve Holden

Sam said:
Hey All,

I am writing some COM code in Python to control photoshop. Several
functions of PS require an "Array" argument. In the examples of VBscript or
javascript the Array type is used. I have tried what would appear to be the
equivalent in Python -- Lists and Tuples -- but to no avail. Anyone have
any insight on what via the COM interface is equivalent to an Array in
javascript ?

The nest way to approach an answer to your question would be for you to
post a VB snippet from one of the examples together with your attempt to
do the same thing in Python plus the error traceback (or other such
messages as you may see) generated when your attempts fails.

Otherwise the question is just a bit too broad to give an answer.

regards
Steve
 
S

Sam the Cat

The nest way to approach an answer to your question would be for you to
post a VB snippet from one of the examples together with your attempt to
do the same thing in Python plus the error traceback (or other such
messages as you may see) generated when your attempts fails.

Otherwise the question is just a bit too broad to give an answer.

regards
Steve

Here is the Javascript example code

......
selRegion = Array(Array(1,1),Array(1,2),Array(2,2),Array(2,1))
Doc.Selection.Select(selRegion,1,0,0)
......

Here is my interpretation in Python

........
selregion = [(1,1),(1,2),(2,2),(2,1)]
print selregion
doc.Selection.Select(selregion,1,0,0)
.......

Here is the error code generated

...........
F:\automation>test2.py
[(1, 1), (1, 2), (2, 2), (2, 1)]
Traceback (most recent call last):
File "F:\automation\test2.py", line 19, in ?
doc.Selection.Select(selregion,1,0,0)
File "<COMObject <unknown>>", line 3, in Select
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Adobe
Photoshop', 'Illegal argument - argument 1\n- Only arrays with dimension 1
are supported', None, 0, -2147220262), None)


.............
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top