Ned Deily added the comment:

I think the issue here is that you are expecting the "mode" attribute of a file 
object (or io.* object in Py3) to reflect the "readable" and "writeable" access 
mode of the underlying file descriptor (for POSIX-like systems).  But, as noted 
in the documentation for the Py3 io.* objects and Py2 file object, their mode 
attributes reflect the "mode" given in the object constructor (for io.*) or the 
open() built-in (for Py2).  The default sys.stdin object will always be created 
as a "readable" file/io object from Python's perspective but that doesn't mean 
that any file descriptor to which the object might refer actually allows read 
access.  That may not be determined until your program does something that 
causes a call to the system runtime libraries that requires "read" access to 
the file, for example, sys.stdin.read() or, for Py2, 
os.fdopen(sys.stdin.fileno()).  (As documented, the Py3 os.fdopen is an alias 
of the open() built-in.)  If you need to know the access mode of a particular fi
 le descriptor, you can use fcntl.fcntl() F_GETFL function to examine the 
access mode of the fd.  Or you could just use try/except blocks to catch 
exceptions.

https://docs.python.org/3/library/os.html#os.open
https://docs.python.org/3/library/io.html#io.FileIO
https://docs.python.org/2/library/stdtypes.html#file.mode
https://docs.python.org/3/library/fcntl.html#fcntl.fcntl
http://pubs.opengroup.org/onlinepubs/9699919799/functions/fcntl.html

----------
nosy: +ned.deily
resolution:  -> not a bug
stage:  -> resolved
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue24073>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to