首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在给定USB和PID的情况下,使用pyserial将USB识别到串行端口

在给定USB和PID的情况下,使用pyserial将USB识别到串行端口
EN

Stack Overflow用户
提问于 2016-01-24 02:48:02
回答 1查看 10.9K关注 0票数 2

我是python的新手。我想创建一个发送短信或使用数据卡打电话的web应用程序。我一直使用数据卡发送短信,但我的问题是,如果我使用多个数据卡同时连接,如何检查哪个usb端口工作正常。所以我想得到usb序列号或usb pid或vid。

代码语言:javascript
复制
import serial.tools.list_ports;
reslt =  serial.tools.list_ports.comports()
print serial.tools.list_ports.ListPortInfo.name

结果:

代码语言:javascript
复制
[('/dev/ttyS31', 'ttyS31', 'n/a'), ('/dev/ttyS30', 'ttyS30', 'n/a'),
 ('/dev/ttyS29', 'ttyS29', 'n/a'), ('/dev/ttyS28', 'ttyS28', 'n/a'),
 ('/dev/ttyS27', 'ttyS27', 'n/a'), ('/dev/ttyS26', 'ttyS26', 'n/a'),
 ('/dev/ttyS25', 'ttyS25', 'n/a'), ('/dev/ttyS24', 'ttyS24', 'n/a'),
 ('/dev/ttyS23', 'ttyS23', 'n/a'), ('/dev/ttyS22', 'ttyS22', 'n/a'),
 ('/dev/ttyS21', 'ttyS21', 'n/a'), ('/dev/ttyS20', 'ttyS20', 'n/a'),
 ('/dev/ttyS19', 'ttyS19', 'n/a'), ('/dev/ttyS18', 'ttyS18', 'n/a'),
 ('/dev/ttyS17', 'ttyS17', 'n/a'), ('/dev/ttyS16', 'ttyS16', 'n/a'),
 ('/dev/ttyS15', 'ttyS15', 'n/a'), ('/dev/ttyS14', 'ttyS14', 'n/a'),
 ('/dev/ttyS13', 'ttyS13', 'n/a'), ('/dev/ttyS12', 'ttyS12', 'n/a'),
 ('/dev/ttyS11', 'ttyS11', 'n/a'), ('/dev/ttyS10', 'ttyS10', 'n/a'),
 ('/dev/ttyS9', 'ttyS9', 'n/a'), ('/dev/ttyS8', 'ttyS8', 'n/a'),
 ('/dev/ttyS7', 'ttyS7', 'n/a'), ('/dev/ttyS6', 'ttyS6', 'n/a'),
 ('/dev/ttyS5', 'ttyS5', 'n/a'), ('/dev/ttyS4', 'ttyS4', 'n/a'),
 ('/dev/ttyS3', 'ttyS3', 'n/a'), ('/dev/ttyS2', 'ttyS2', 'n/a'),
 ('/dev/ttyS1', 'ttyS1', 'n/a'), ('/dev/ttyS0', 'ttyS0', 'n/a'),
 ('/dev/ttyUSB3', 'Huawei Technologies Co., Ltd. Modem/Networkcard ',
  'USB VID:PID=12d1:1506'),
 ('/dev/ttyUSB2', 'Huawei Technologies Co., Ltd. Modem/Networkcard ',
  'USB VID:PID=12d1:1506'),
 ('/dev/ttyUSB0', 'Huawei Technologies Co., Ltd. Modem/Networkcard ',
  'USB VID:PID=12d1:1506')]

和用于

代码语言:javascript
复制
import serial.tools.list_ports;
print [port for port in serial.tools.list_ports.comports() if port[2] != 'n/a']

结果:

代码语言:javascript
复制
[('/dev/ttyUSB3', 'Huawei Technologies Co., Ltd. Modem/Networkcard ',
  'USB VID:PID=12d1:1506'),
 ('/dev/ttyUSB2', 'Huawei Technologies Co., Ltd. Modem/Networkcard ',
  'USB VID:PID=12d1:1506'),
 ('/dev/ttyUSB0', 'Huawei Technologies Co., Ltd. Modem/Networkcard ',
  'USB VID:PID=12d1:1506')]

我在学习http://pyserial.readthedocs.org/en/latest/tools.html

请告诉我怎样才能获得usb视频,Usb序列号等。

EN

回答 1

Stack Overflow用户

发布于 2018-03-31 03:04:11

正如@Peter在他的评论中所说,在较新版本的PySerial (当前版本是3.4)中,您可以很容易地获取端口信息,如描述、PID、VID、HWID、名称、序列号等。

例如:

代码语言:javascript
复制
for port in serial.tools.list_ports.comports():
    print(port.hwid)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34967369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档