__file__ vs __FILE__

Jeff McNeil jeff at jmcneil.net
Fri Nov 2 23:45:54 EDT 2007


The __file__ attribute is present when you run a script from a file.  
If you run from the interactive interpreter, it will raise a  
NameError. Likewise, I believe that in earlier versions of Python  
(2.1? Pre 2.2?) it was only set within imported modules. I've used the  
'os.path.realpath(os.path.pardir)' construct in a couple of scripts  
myself.  That ought to work within the interactive interpreter.

Jeff

On Nov 2, 2007, at 11:21 PM, klenwell wrote:

> I apologize in advance for coming at this from this angle but...
>
> In PHP you have the __FILE__ constant which gives you the value of the
> absolute path of the file you're in (as opposed to the main script
> file.)  With the function dirname, this makes it easy to get the
> parent dir of a particular file from within that file:
>
> $parent_dir = dirname(__FILE__);
>
> I'm looking for the best way to accomplish this in Python.  This seems
> to work:
>
> parent_dir = os.path.normpath(os.path.join(os.path.abspath(__file__),
> '..'))
>
> Can anyone confirm the reliability of this method or suggest a better
> (one-line) method for accomplishing this?
>
> Thanks,
> Tom
>
> -- 
> http://mail.python.org/mailman/listinfo/python-list




More information about the Python-list mailing list