该模块封装了对串行端口(serial port)的访问。它提供了在 Windows,OSX,Linux,BSD(可能是任何POSIX兼容系统)和 IronPython 上运行的 Python 的后端。名为 serial
的模块会自动选择适当的后端。
serial.tools.list_ports.comports(include_links=False)
include_links
(bool)–在指向串行端口的/dev
下包含符号链接。- 返回包含
ListPortInfo
对象的列表。此列表的顺序没有特殊含义。另请注意,即使对于同一设备,报告的字符串在平台和操作系统之间也不同。
在 Linux,OSX 和 Windows 下,扩展信息将可用于 USB 设备(例如 ListPortInfo.hwid
字符串包含 VID:PID
,SER
(序列号),LOCATION
(层次结构),这使它们可以通过 grep()
进行搜索。USB 的信息也可使用 ListPortInfo
的属性获取。比如:
from serial.tools import list_ports
devices = list_ports.comports()
devices, devices[0].hwid
如果include_links
为True
,则检查 /dev
下的所有设备是否是到已知串行端口设备的链接。这些项将在其 hwid
字符串中包含 LINK。这意味着同一设备列出了两次,一次以其原始名称,一次以链接名称。
serial.tools.list_ports.grep(regexp, include_links=False)
regexp
–正则表达式(请参阅标准库 re)- 返回
ListPortInfo
对象的生成器,另请参见list_ports.comports()
。
使用正则表达式搜索端口。搜索端口name
,description
和hwid
(不区分大小写)。比如:
for port in list_ports.grep('USB'):
print(port)
classserial.tools.list_ports.ListPortInfo
该对象保存有关串行端口的信息。它支持索引访问以实现向后兼容性,例如在port, desc, hwid = info
中。
- device
- 完整的设备名称/路径,例如
/dev/ttyUSB0
。这也是当被索引访问时作为第一个元素返回的信息。 - name
- 设备名称
- description
- 人类可读的描述或 n/a。这也是当通过索引访问时作为第二个元素返回的信息。
- hwid
- 技术说明或 n/a。这也是当通过索引访问时作为第三个元素返回的信息。
- vid
- USB 供应商(Vendor)ID(整数,0~65535)。
- pid
- USB 产品 ID(整数,0~65535)。
- serial_number
- USB 的字符串序列号。
- location
- USB设备位置字符串(“
<bus>-<port>[-<port>]…
”) - manufacturer
- USB 制造商字符串,由设备报告。
- product
- USB 产品字符串,由设备报告。
- interface
- 界面特定的描述,例如 用于复合 USB 设备。
实现比较运算符,以便可以按device
对 ListPortInfo
对象进行排序。字符串分为数字和文本组,因此顺序是“自然的”(即 com1
< com2
< com10
)。