Richard Gibbs <richard.gi...@smooth-stone.com> wrote:

> If my python script is called with stdout (or stdin or stderr)
> redirected to a file, how can I find the filename under Linux?  Under
> Windows?

On Linux, you can read the /proc/self/fd/* symlinks, e.g.:

        stdin_filename = os.readlink('/proc/self/fd/0')

This isn't portable, and won't always work, e.g. stdin may not be
associated with a file, the file may have been deleted, or /proc may not
be mounted.

If /proc isn't mounted, you can achieve the same result albeit with a lot
more effort by using os.fstat(0) to determine the device and inode
number then searching the filesystem (with e.g. os.walk or the "find"
utility) for a match (if one exists).

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to