Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Python and Javascript equivalence

12 views
Skip to first unread message

Sam the Cat

unread,
Apr 22, 2007, 9:00:41 PM4/22/07
to
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


Prateek

unread,
Apr 22, 2007, 10:29:07 PM4/22/07
to

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

7stud

unread,
Apr 22, 2007, 10:46:28 PM4/22/07
to

See if the python array type works:

import array

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

Marc 'BlackJack' Rintsch

unread,
Apr 23, 2007, 3:40:10 AM4/23/07
to

> 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

Steve Holden

unread,
Apr 23, 2007, 8:17:23 AM4/23/07
to pytho...@python.org

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
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://del.icio.us/steve.holden
Recent Ramblings http://holdenweb.blogspot.com

Sam the Cat

unread,
Apr 23, 2007, 6:13:18 PM4/23/07
to
>>
>> 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
> --
>

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)


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


0 new messages