[Tutor] droplet like behaviour in Python

Dave Angel davea at ieee.org
Tue Aug 11 04:40:14 CEST 2009


bob gailer wrote:
> <div class="moz-text-flowed" style="font-family: -moz-fixed">Alan 
> Gauld wrote:
>> "pedro" <pedrooconnell at gmail.com> wrote
>>> Well I made a script called droplet.py which looks like this:
>>>
>>> #!/usr/bin/env python
>>> # encoding: utf-8
>>> import sys
>>> theFilePath = sys.argv[1]
>>> print theFilePath
>>>
>>>
>>> But when I try to drop something on it nothing happens. Sorry I 
>>> guess there is something fundamental that I am missing.
>>
>> Sorry, obviously I was wrong. FWIW in XP I get python to start up but 
>> there is no filename in argv. 
>
> That depends on the file association settings for .py.
> Start -> Settings -> Control Panel -> Folder Options -> File Types
> Find py extension.
> Click Advanced
> Choose open
> Click Edit
> in my system I see "H:\Python30\python.exe" "%1" %*
> which means fire up python.exe, pass the dropped file name as the 
> first argument.
>
> BTW a nice 1 python line version independent droplet:
> #!/usr/bin/env python
> # encoding: utf-8
> input(__import__('sys').argv)
>
>
Unfortunately, you're not describing a droplet, but only the usual 
Windows file association scheme.  (Incidentally, the OP was asking about 
the Mac)

The filename that goes into the %1 of the shortcut is the name of the 
script.  So that will show up in sys.argv[0].  The OP wanted to drop a 
data file, and have its name show up as sys.argv[1].

I don't know the Mac, so I stayed out of this thread.  But I haven't 
found any way to do real Python droplets on Windows.  Closest I found 
was adding my python app to the right-click menu, so one can right-click 
on a data file to get the Python code to run on it.

What a droplet needs is for the user to be able to drag a data file to a 
python script, and have the script start, with sys.argv[1] pointing to 
the data file.   I'd love to know how to do it in Windows, and the OP 
would love to know how to do it on the Mac.

DaveA



More information about the Tutor mailing list