[Python-Dev] RE: Windows IO
Tim Peters
tim.one@comcast.net
Mon, 17 Mar 2003 13:45:17 -0500
[David LeBlanc]
> It looks as though IO in Python (2.2.1), regardless of platform or device,
> happens in Objects/fileobject.c and, in particular, writing occurs in
> file_write(...)?
For builtin file objects, at least there, and in file_writelines(), and it's
also possible to use f.fileno() and then use lower-level facilities (like
os.write()).
> A few questions I hope a lurking (timbot? ;) ) person can answer:
>
> 1. Is the above true, or does something different happen when using a
> Windows console/commandline?
Using one how? If via a Python file object, yes, the above is true.
> 2. Is there any way to know if a console is being used (that a
> device is the console)?
>>> import sys
>>> sys.stdin.isatty()
True
>>> sys.stdout.isatty()
True
>>> whatever = open('whatever.txt', 'w')
>>> whatever.isatty()
False
>>>
> 3. What's the purpose of the PC/msvcrtmodule.c file?
It implements the Windows-specific msvcrt module:
http://www.python.org/doc/current/lib/module-msvcrt.html
> Does it play any role in the regular pythonic IO scheme of things?
No, and mixing console-mode IO via that module with standard IO can be a
disaster.
> I'm interested in discovering if the Win32 API for screen reading/writing
> can be used so that character color attributes and cursor commands can be
> manipulated. It would be nice if those could be used transparently to a
> python application so that an application sending (for instance)
> ANSI color codes would succede and one that didn't wouldn't care. I
> realize this is sort of like curses - is there a Windows version of curses
> that plays well with Python and isn't GPL?
This really belongw on c.l.py, where it gets asked frequently enough. I
haven't paid attention to the answers. Fredrik's Console extension for
Windows should tickle your fancy:
http://effbot.org/zone/console-index.htm