If your using this for strictly output from LinuxCNC --> Arduino, with no input from Arduino --> LinuxCNC, then this doesn't work unless you turn on debugging on in the Arduino.
The reason is because the firstcom flag never gets set unless it see's a incoming command from the Arduino (after the E0:0 handshake). If you turn debugging on, it sends the 'I Received==' comments, which the python script considers the "I" as a command, and toggles the firstcom flag, which then allows the python script to start sending commands to the Arduino.