Adjusting the 1024 byte stdin buffer limit

Fredrik Lundh fredrik at pythonware.com
Mon Jan 17 21:26:39 CET 2005


"brucoder" <timj at tolisgroup.com> wrote:

> Currently, when sending a data stream that exceeds 1024 bytes via
> stdin, the stream blocks at the 1024th byte.  This precludes completion
> of the submission of the data stream.

you can pass in a buffer size when you open a file:

    >>> help(open)

    class file(object)
     |  file(name[, mode[, buffering]]) -> file object
     |
     |  Open a file.  The mode can be 'r', 'w' or 'a' for reading (default),
     |  writing or appending.  The file will be created if it doesn't exist
     |  when opened for writing or appending; it will be truncated when
     |  opened for writing.  Add a 'b' to the mode for binary files.
     |  Add a '+' to the mode to allow simultaneous reading and writing.
     |  If the buffering argument is given, 0 means unbuffered, 1 means line
     |  buffered, and larger numbers specify the buffer size.
     |  Add a 'U' to mode to open the file for input with universal newline
     |  support.  Any line ending in the input file will be seen as a '\n'
     |  in Python.  Also, a file so opened gains the attribute 'newlines';
     |  the value for this attribute is one of None (no newline read yet),
     |  '\r', '\n', '\r\n' or a tuple containing all the newline types seen.
     |
     |  'U' cannot be combined with 'w' or '+' mode.
     |
     |  Note:  open() is an alias for file().

or use os.fdopen() to reopen an existing file handle:

    >>> help(os.fdopen)

    fdopen(fd [, mode='r' [, bufsize]]) -> file_object

    Return an open file object connected to a file descriptor.

assuming "sending via stdin" means using a pipe, this page explains why all
this probably won't matter:

    http://www.opengroup.org/onlinepubs/7990989799/xsh/write.html

(see the "Write requests to a pipe or FIFO" section)

</F> 






More information about the Python-list mailing list