title: Why text I/O must be buffered in python 3?
body: <p>Python 2 supported unbuffered text I/O.</p>
  
  <p>The same approach doesn't work in python 3. Why was unbuffered text I/O disabled?</p>
  
  <pre><code>&gt; import sys
  &gt; sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
  builtins.ValueError: can't have unbuffered text I/O
  </code></pre>
  
  <p>The binary still works fine:</p>
  
  <pre><code>&gt; sys.stdout = os.fdopen(sys.stdout.fileno(), 'wb', 0) # works fine
  </code></pre>