[Tutor] Python on Windows: any way to access shortcut's info?

Kent Johnson kent37 at tds.net
Mon Jan 9 04:20:52 CET 2006


Terry Carroll wrote:
> I would like to know the name of the shortcut (link, I think, in Unix
> parlance) from which a python program is being invoked.  I'd also like to
> be able to access the directory where the shortcut lives.

You can set the command line arguments and working directory for a 
shortcut by opening the properties window on the shortcut, at least in 
Win2k.

So for example in the properties for argc.py just add 
'C:\\test\\argtest\\testdir\\argc.py to the "Target" field and set the 
"Start in" field to 'C:\\test\\argtest\\testdir'

If arga.py imports any packages in argtest\ you will have to add that 
dir to sys.path somehow (many options for this).

Kent
> 
> Toy example: here's a directory structure:
> 
>  C:\
>    test\
>      argtest\
>        arga.py
>        argb.py
>        testdir\
>           argc.py
> 
> arga.py contains:
> 
>   import sys,os
>   print "ARGS:", sys.argv
>   print "WD:", os.getcwd()
>   raw_input()  # just to keep the window open
> 
> argb.py and argc.py are both shortcuts to arga.py
> 
> When I run arga.py (e.g., by double-clicking on it, I get, as expected:
> 
> ARGS: ['C:\\test\\argtest\\arga.py']
> WD: C:\test\argtest
> 
> 
> When I run argb.py, I get the same thing.  I'd hoped (but didn't really
> expect) sys.argv would be ['C:\\test\\argtest\\argb.py'] .
> 
> When I run argc.py, same thing.  In this case, I'd hoped sys.argv would be 
> ['C:\\test\\argtest\\testdir\\argc.py']; and os.getcwd() would have given 
> back 'C:\test\argtest\testdir'.
> 
> Why do I care?
> 
> Well, I'd like to set up a directory where the shortcut and all its 
> files will live.  I'd hoped keying off of the shortcut name might be an 
> easy way to do this.
> 
> I suspect I'm out of luck: my guess is that windows does all the lookup of 
> what the shortcut points to, and then launches the file pointed to; and by 
> the time Python gets control, the shortcut information is long gone.  
> Anyone know for sure?
> 
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
> 
> 




More information about the Tutor mailing list