Python: Lecture et Écriture de port série

J'ai lu la documentation, mais n'arrive pas à trouver une réponse claire sur ce point.
J'ai une liste de tous les Ports COM en cours d'utilisation par les Modems connectés à l'ordinateur. À partir de cette liste, j'essaie de l'ouvrir, envoyer une commande, et si elle dit quelque chose en retour, l'ajouter à une autre liste. Je ne suis pas entièrement sûr que je suis en utilisant pyserial de lire et d'écrire des fonctions correctement.

i=0
for modem in PortList:
    for port in modem:
        try:
            ser = serial.Serial(port, 9600, timeout=1)
            ser.close()
            ser.open()
            ser.write("ati")
            time.sleep(3)
            print ser.read(64)
            if ser.read(64) is not '':
                print port
        except serial.SerialException:
            continue
        i+=1

Je ne suis pas tout ce qui sort de la ser.read(). Je suis toujours chaînes vides.

Avez-vous essayé de courir? Êtes-vous un message d'erreur? Inattendus de sortie? Ou...?
Quel est exactement le problème?
Désolé, j'ai oublié d'écrire que vers le bas. Je suis toujours vierge chaînes de ser.read(). J'ai l'impression de voir de quoi il en retourne.
Pourquoi êtes-vous fermeture ser immédiatement après l'initialisation? Qui semble comme il pourrait être gênant.
Couple d'autres questions poussent à moi: ser.read(64) devrait être ser.read(size=64), et vous devez l'affecter à une variable (read_val = ser.read(size=64), suivie par print read_val et puis si l'instruction), car en ce moment, vous devez effectuer deux lectures.

OriginalL'auteur RageCage | 2013-10-02