Python Nautilus script

Diez B. Roggisch deets at
Mon Sep 15 21:33:12 CEST 2008

Michel Leunen schrieb:
> Hi,
> I'm trying to write a python script for Nautilus.
> To get the list of files selected in the Nautilus right pane, you use 
> the $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS environment variable which is 
> normally available to the script. Actually, it works with bash scripts 
> but not with python scripts
> import os
> files = os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'].splitlines()
> gives a:
> File "<stdin>", line 1, in <module>
>   File "/usr/lib/python2.5/", line 22, in __getitem__
>     raise KeyError(key)
> Fredrik Lundh explained me that all environment variables are not 
> accessible from subprocesses of an application.
> So my question is how can I get the Nautilus selected files in a python 
> script?

There shouldn't be a difference between a shell-script and a 
python-script. Environment-variables are a unix-process-thing, and thus 
the rules that govern them apply to *all* processes - the shell is one 
of these, there is nothing special to it.

If the shell-script gets the variable, the python-script will as well.

Are you sure the shell gets the value? Or is it just silently ignoring a 
missing value, and the python-script isn't? According to the docs (I 
only googled the variable-name), the variable seems only to be set "only 
if local"[1], whatever that means.


More information about the Python-list mailing list