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
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
See if the python array type works:
import array
y = array.array("i", [2,3,4])
print y
> 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
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
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)
............