欢迎访问宙启技术站
智能推送

Python中利用comports()函数生成20个随机串口列表

发布时间:2024-01-19 22:39:29

在Python中,可以使用comports()函数从系统中获取已连接的串口列表。该函数位于serial.tools.list_ports模块中,需要先安装pyserial库才能使用。

comports()函数返回一个迭代器,可以使用list()函数将其转换为一个列表。每个列表元素都是一个串口对象,包含了串口的名称、描述和硬件信息等。

为了生成20个随机串口列表,我们可以使用random模块来生成随机的串口名称。下面是一个具体的例子:

import random
import serial.tools.list_ports

def generate_random_ports(num_ports):
    ports = []
    available_ports = list(serial.tools.list_ports.comports())
    
    for _ in range(num_ports):
        if available_ports:
            # 从可用串口列表中随机选择一个串口
            random_port = random.choice(available_ports)
            ports.append(random_port)
            available_ports.remove(random_port)
        else:
            # 如果可用串口列表已经为空,则停止生成
            break

    return ports

if __name__ == "__main__":
    # 生成20个随机串口列表
    random_ports = generate_random_ports(20)
    
    # 打印每个串口的名称和描述
    for port in random_ports:
        print("Name: {}, Description: {}".format(port.device, port.description))

在上述示例中,我们首先通过调用comports()函数获取系统中所有可用的串口列表,并将其转换为列表形式。然后,我们使用random.choice()函数从当前可用串口列表中随机选择一个串口,并将其添加到生成的随机串口列表中。注意,我们在选择后还需要将该串口从可用列表中移除,以确保每个串口只被选择一次。

最后,我们打印生成的每个随机串口对象的名称和描述信息。

需要注意的是,生成的随机串口列表可能包含重复的串口(如果可用串口数量不足),因此可以根据需求进行去重处理。