Question: In python 2.x I could do this:

```
import sys, array
a = array.array('B', range(100))
a.tofile(sys.stdout)
```

Now however, I get a `TypeError: can't write bytes to text stream`. Is there some secret encoding that I should use?

Answer: 
A better way:

```
import sys
sys.stdout.buffer.write(b"some binary data")

```
An idiomatic way of doing so, which is only available for Python 3, is:

```
with os.fdopen(sys.stdout.fileno(), "wb", closefd=False) as stdout:
    stdout.write(b"my bytes object")
    stdout.flush()

```

The good part is that it uses the normal file object interface, which everybody is used to in Python.

Notice that I'm setting `closefd=False` to avoid closing `sys.stdout` when exiting the `with` block. Otherwise, your program wouldn't be able to print to stdout anymore. However, for other kind of file descriptors, you may want to skip that part.