Usually all I/Os are buffered, meaning they are written in chunks. Pythons print method as an exclusive attribute namely, flush which allows the user to decide if he wants his output to be buffered or not. The default value of this is False meaning the output will be buffered. If you change it to true, the output will be written as a sequence of characters one after the other. This process is usually slower because it's easier to write in chunks rather than writing one character at a time.