[Python-de] os.read() verwirrt mich - TypeError: an integer is required

Jan Voges jan.voges at gmx.de
Mit Jan 28 22:59:00 CET 2004


Hallo!

On 28 Jan 2004 at 22:21, Kai Weber wrote:

>     "... Note: this function is intended for low-level I/O and must be
>     applied to a file descriptor as returned by open() or pipe(). To
>     read a ``file object'' returned by the built-in function open() or
>     by popen() or fdopen(), or sys.stdin, use its read() or readline()
>     methods."
> 
> Kann mir jemand meinen Denkfehler erklären?

Wohl eher ein Übersetzungsproblem.
os.read() erwartet einen "File Descriptor" (ein Integer) als erstes Argument. 
So einen Descriptor liefert u.a. os.open() oder os.pipe(). 
"File Objects" dagegen werden durch zum Beispiel die built-in-Funktionen open() 
oder file() erzeugt, oder eben durch Popen4() in Form der Attribute fromchild 
und tochild. Und lesend greift man auf ein "File Object" mit z.B. den Methoden 
read und readlines() zu.

Jan