AIUTO Python + Arduino

Ciao ragazzi, come da titolo, ho dei problemi a comunicare con Arduino usando Python.
Uso l' Idle incorporata nella versione Windows di Python, su Ultimate a 64 bit, e naturalmente importo pyserial.

Il codice Arduino, se ricevuto il char '5' accende per qualche secondo il pin13

Il problema è Il lato Python, se apro una shell e digito le istruzioni una dopo l'altra, funziona:

import serial
ser = serial.Serial(7) #porta COM8
ser.write('5')

il carattere '5' viene inviato correttamente alla seriale e Arduino accende il suo led on board.
Se invece scrivo il listato e lo avvio usando l'ide l'esecuzione termina senza errore e senza sortire nessun effetto.

Capisco che toppo qualcosa perchè per esempio se nel listato scrivo la stessa istruzione che sulla shell funziona:
ser = serial.Serial(7) al momento dell' avvio mi da il famigerato [ERRORE 5] il numero della porta devo assegnarlo per forza usando il suo attributo specifico, così come gli altri valori di ser (baud rate, bit parità, ecc..)

Un altro esempio, se non uso ser.open() prima di scrivere sulla seriale, ricevo nuovamente errore, mi dice che non ho aperto la porta, ma allora perchè dalla shell scrivendo tre righe, funziona?

È la prima volta che mi cimento con Python, e sicuramente mi manca qualcosa di basilare, datemi una manoooo!!

Ciao ragazzi, c'è stato uno sviluppo, ho capito perchè lo script non funzionava a differenza degli stessi comandi dati dalla shell, quando viene aperta la comunicazione seriale Arduino si resetta! Ecco perchè il carattere non veniva ricevuto, è bastato un time.sleep tra l'apertura della seriale e l'invio del carattere e tutto ha funzionato!! :F

Francesco_MIRM:
quando viene aperta la comunicazione seriale Arduino si resetta!

Eh, sì. Questa è una menata che a chi usa l'Arduino collegato al PC può dar fastidio.