sys.stdout question

M.E.Farmer mefjr75 at hotmail.com
Sun May 1 18:45:35 EDT 2005


Print is the culprit here. Note item 2.
>>> help('print')
  6.6 The print statement



  	print_stmt	  ::= 	 "print" ( [expression[1] ("," expression[2])*
[","]]
  	 	  	 | ">>" expression[3] [("," expression[4])+ [","]] )

  Download entire grammar as text.[5]

  print evaluates each expression in turn and writes the resulting
object
  to standard output (see below). If an object is not a string, it is
  first converted to a string using the rules for string conversions.
The
  (resulting or original) string is then written. A space is written
  before each object is (converted and) written, unless the output
system
  believes it is positioned at the beginning of a line. This is the
case
  (1) when no characters have yet been written to standard output, (2)
  when the last character written to standard output is "\n", or (3)
when
  the last write operation on standard output was not a print
statement.
  (In some cases it may be functional to write an empty string to
standard
  output for this reason.) Note: Objects which act like file objects
but
  which are not the built-in file objects often do not properly emulate
  this aspect of the file object's behavior, so it is best not to rely
on
  this.

  A "\n" character is written at the end, unless the print statement
ends
  with a comma. This is the only action if the statement contains just
the
  keyword print.

  Standard output is defined as the file object named stdout in the
  built-in module sys. If no such object exists, or if it does not have
a
  write() method, a RuntimeError exception is raised.

  print also has an extended form, defined by the second portion of the
  syntax described above. This form is sometimes referred to as ``print
  chevron.'' In this form, the first expression after the >> must
evaluate
  to a ``file-like'' object, specifically an object that has a write()
  method as described above. With this extended form, the subsequent
  expressions are printed to this file object. If the first expression
  evaluates to None, then sys.stdout is used as the file for output.

hth,
M.E.Farmer




More information about the Python-list mailing list