Se você trabalha ou irá trabalhar com portas serias no Python, você já deve ter precisado de listar todas as portas em uso.
Agora, sabia que trabalhar com essas portas serias na linguagem Python é muito mais fácil?
Você quer se tornar um programador melhor? Veja 8 dicas especiais que fizemos para você.
Pensando nessa necessidade, construímos uma classe para listar todas as portas em uso na máquina.
Para utilizar a classe que criamos, é necessário ter instalado a biblioteca pyserial. Você pode instalá-la utilizando o seguinte código no pip:
pip install pyserial
Veja como ficou o código da classe:
import serial
import sys
class Portas :
"""
Classe com métodos para portas
"""
MAX_PORTAS = 32 # Número máximo de portas para verificação.
def getPortasEmUso () :
"""
Método para buscar as portas em uso
"""
# Faz um loop de 1 ao número maximo de portas para verificação
# e o concatena à string 'COM':
for p in ['COM%s' % (i + 1) for i in range(Portas.MAX_PORTAS)] :
try :
# Tenta abrir a conexão:
s = serial.Serial(p)
# Tenta fechar a conexão
s.close()
# Retorna um por um
yield s.name
except (OSError, serial.SerialException) :
# Caso der erro, a porta não está sendo utilizada.
# Ignoramos neste caso.
pass
Para pegar a lista das portas em uso é só utilizar o método getPortasEmUso().
2 thoughts on “Listar portas seriais no Python”
Victor
(28 outubro, 2022 - 11:56)import serial
class Portas :
“””
Classe com métodos para portas
“””
MAX_PORTAS = 32 # Número máximo de portas para verificação.
def getPortasEmUso(self):
“””
Método para buscar as portas em uso
“””
# Faz um loop de 1 ao número maximo de portas para verificação
# e o concatena à string ‘COM’:
for p in [f’COM{i+1}’ for i in range(self.MAX_PORTAS)] :
try :
# Tenta abrir a conexão:
s = serial.Serial(p)
# Tenta fechar a conexão
s.close()
# Retorna um por um
yield s.name
except (OSError, serial.SerialException) :
# Caso der erro, a porta não está sendo utilizada.
# Ignoramos neste caso.
pass
portas = Portas()
for serial_disponivel in portas.getPortasEmUso():
print(serial_disponivel)
Victor Vaz
(28 outubro, 2022 - 14:50)Olá amigo! Obrigado pela contribuição 🙂