Ícone do site Cafeína Codificada

Listar portas seriais no Python

portas serias no python

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().