Espera en Arduino auto-reset usando pySerial

Estoy tratando de leer las líneas de un tablero Arduino con un código muy simple (para mostrar el problema) en Linux.

Código Python:

# arduino.py
import serial
arduino = serial.Serial('/dev/ttyACM0')

with arduino:
    while True:
        print(arduino.readline())

Código Arduino:

// simpleWrite.ino
long ii = 0;

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}

void loop() {
  Serial.println(ii);
  ii++;
}

Como la placa se reinicia automáticamente cuando se abre la conexión en serie, es probable que los primeros bytes sean basura. Después de un segundo o dos todo funciona bien.

Esta es una salida típica:

$ python arduino.py 
b'09\r\n'
b'540\r\n'
b'541\r\n'
b'542\r\n'
b'543\r\n'
b'544\r\n'
b'545\r\n'
b'546\r\n'
b'547\r\n'
b'548\r\n'
b'549\r\n'
b'550\r\n'
b'551\r\n'
b'552\r\n'
b'553\r\n'
b'554\r\n'
b'555\r\n'
b'556\r\n'
b'557\r\n'
b'55\xfe0\r\n'  # <---- Here the board restarted
b'1\r\n'
b'2\r\n'
b'3\r\n'
b'4\r\n'
b'5\r\n'
b'6\r\n'
b'7\r\n'
b'8\r\n'
b'9\r\n'
b'10\r\n'

Sin embargo, veo que el Monitor Serial IDE de Arduino no tiene este problema, muestra correctamente una demora (mientras se reinicia) y luego imprime todas las líneas desde la primera.

¿Hay una manera de emular este comportamiento en Python usando pySerial? Es decir, ¿descartando toda la salida antes de reiniciar y nada más? Tal vez a través de algunas funciones de bajo nivel?

Traté de mirar elCódigo fuente de Arduino relevante, pero no sé Java y no sirvió de nada.

Nota: por supuesto que podría dormir durante, por ejemplo, tres segundos, descartar todo y empezar desde allí, pero probablemente también descartaría algunas de las primeras líneas.

Editar: Aparentemente, este problema no existe en Windows y la solución aceptada no fue necesaria.

Respuestas a la pregunta(3)

Su respuesta a la pregunta