【发布时间】:2016-01-23 18:48:01
【问题描述】:
我是python的新手。我想创建一个使用数据卡发送短信或通话的 Web 应用程序。我一直在使用数据卡发送短信,但我的问题是,如果我一次使用多个数据卡连接,如何检查哪个 USB 端口工作正常。所以我想得到usb序列号或usb pid或vid。
import serial.tools.list_ports;
reslt = serial.tools.list_ports.comports()
print serial.tools.list_ports.ListPortInfo.name
结果:
[('/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')]
为了
import serial.tools.list_ports;
print [port for port in serial.tools.list_ports.comports() if port[2] != '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')]
我在学习http://pyserial.readthedocs.org/en/latest/tools.html
请帮助我如何获取 USB VID、USB 序列号等。
【问题讨论】:
-
您可以尝试更新版本的 pyserial。在版本 3.0.1
serial.tools.list_ports.comports()中,返回的serial.tools.list_ports.ListPortInfo具有属性pid、vid和serial_number。 -
我正在使用 Django==1.8 Markdown==2.4.1 MySQL-python==1.2.5 Pillow==2.5.3 Pygments==1.6 argparse==1.2.1 bootstrap-admin== 0.3.6 django-braces==1.4.0 django-filter==0.7 django-oauth-toolkit==0.7.2 feedparser==5.1.3 gunicorn==19.1.1 oauthlib==0.6.3 pyserial==3.0。 1 python-gcm==0.2 requests==2.2.1 六==1.7.3 wsgiref==0.1.2 然后给出错误:- Traceback(最近一次调用最后):文件“/var/www/html/django/sms /test/usb_info.py",第 3 行,在
中打印 serial.tools.list_ports.ListPortInfo AttributeError: 'module' object has no attribute 'ListPortInfo'
标签: python python-2.7 python-3.x pyserial usbserial