如何使用“serial.tools.list_ports"python 模块获取可用串行端口的列表? [英] How can I get a list of available serial ports using 'serial.tools.list_ports' python module?

查看:520
本文介绍了如何使用“serial.tools.list_ports"python 模块获取可用串行端口的列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是 Python 新手,我需要一个可用串行端口的列表来在程序中选择其中一个.根据这个serial.tools.list_ports 模块可以通过执行 serial.tools.list_ports.comports() 方法为我做到这一点.因此,我在python解释器中执行了以下代码:

I'm new to python and I need a list of available serial ports to choose one of them in a program. According to This, the serial.tools.list_ports module can do that for me by executing serial.tools.list_ports.comports() method. Accordingly,I executed the following code in python interpreter:

import serial.tools.list_ports
a=serial.tools.list_ports.comports()
print(a)

结果是:

[<serial.tools.list_ports_linux.SysFS object at 0x7f2503d27be0>]

而当我在 ubuntu 终端中使用以下命令时

while when I use the following command in ubuntu terminal

python3 -m serial.tools.list_ports

它返回我想要的:

/dev/ttyUSB0        
1 ports found

问题出在哪里?

推荐答案

根据您链接的文档,

该函数返回一个ListPortInfo 对象.

The function returns a list of ListPortInfo objects.

它们有几个你可以使用的属性,例如device:

They have several attributes which you can use, for example device:

完整的设备名称/路径,例如/dev/ttyUSB0

Full device name/path, e.g. /dev/ttyUSB0

为了模拟命令 python3 -m serial.tools.list_ports,你可以这样做:

In order to emulate the command python3 -m serial.tools.list_ports, you could do:

import serial.tools.list_ports

ports = serial.tools.list_ports.comports()
for p in ports:
    print(p.device)
print(len(ports), 'ports found')

这是它的简化版本 实际上是.

这篇关于如何使用“serial.tools.list_ports"python 模块获取可用串行端口的列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆