最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用 Python 列出串口的實現(xiàn)方法

 更新時間:2023年08月24日 11:00:54   作者:跡憶客  
有時在編程時,我們需要獲取有關系統(tǒng)中可用通信端口的信息, 我們將討論如何使用 Python 來做到這一點,將討論使用串口或 com 端口的通信, 我們將深入探索 Python 包,以幫助我們獲得系統(tǒng)的可用通信端口,感興趣的朋友一起看看吧

在本文中,我們將討論使用串口或 com 端口的通信。 我們將深入探索 Python 包,以幫助我們獲得系統(tǒng)的可用通信端口。

稍后,我們將回顧一些使用 Python 搜索和獲取有關可用串行端口的詳細信息的技術。

COM口簡介

COM 端口是一種 I/O 接口,可以將串行設備連接到計算機。 它是通信端口的縮寫形式。

COM 端口有時也稱為串行端口。 COM口在新的電腦和設備上已經(jīng)不常用了,但是很多舊的串口設備還在使用。

因此,我們有時可能需要進行串口通信,將這些端口列出來進行幾個串口操作。

在 Python 中獲取可用串口列表

有時在編程時,我們需要獲取有關系統(tǒng)中可用通信端口的信息。 我們將討論如何使用 Python 來做到這一點。

Python 提供了 pySerial 模塊,它提供了對串行端口和相關信息的訪問。 我們首先需要將包pySerial安裝到我們的項目中,然后我們就可以輕松地使用它的功能了。

要安裝包,我們必須在 Python 命令終端中鍵入 pip install pyserial 并按 Enter。 該包將可供使用。

現(xiàn)在,讓我們看一下列出串行端口的以下代碼:

import serial.tools.list_ports
ports = []
for port in serial.tools.list_ports.comports():
    ports.append(port.name)
print(ports)

輸出:

['COM1']

讓我們討論一下我們在代碼中做了什么。 我們必須編寫 import serial 才能使用已安裝的包。

pySerial 包有一個 comports() 方法,它返回可用 COM 端口的列表。 此列表中的每個對象都是 ListPortInfo 類型。

我們將在本文后面討論這個 ListPortInfo 對象包含什么。

comports() 函數(shù)位于模塊 list_ports 中,該模塊位于工具中。 所以我們通過編寫 import serial.tools.list_ports 來導入整個模塊。

然后我們只需在 comports() 函數(shù)返回的列表上運行一個 for 循環(huán),并將端口附加到我們的列表中。

上面的代碼可以通過使用 Python 列表理解來編寫得更簡單。 兩種代碼的輸出將相同。 就是這樣。

import serial.tools.list_ports
print([port.device for port in serial.tools.list_ports.comports()])

獲取串行端口列表及其詳細信息

正如我們所討論的, comports() 函數(shù)返回端口列表,列表中的每個對象都是 ListPortInfo 類型。 此對象包含有關串行端口的信息,并提供索引訪問以檢索設備(全名/路徑)、描述和串行端口的 hwid。

索引 0 將為我們提供設備的值,描述位于索引 1,索引 2 將共享端口的 hwid。

以下是 ListPortInfo 對象可以為我們提供的有關 COM 端口的詳細信息:

對象描述
device完整的設備名稱/路徑。 當索引訪問時,這將作為第一個元素返回。
name短設備名稱。
description人類可讀的描述。 當索引訪問時,這將作為第二個元素返回。
hwid硬件 ID。 當索引訪問時,這將作為第三個元素返回。
vidUSB 供應商 ID。
pidUSB 產(chǎn)品 ID。
serial_number字符串形式的 USB 序列號。
locationUSB 設備位置字符串。
manufacturerUSB 制造商字符串,由設備報告。
productUSB 產(chǎn)品字符串,由設備報告。
interface特定于接口的描述。

現(xiàn)在,讓我們編寫一個代碼來獲取所有可用 com 端口的列表以及它們的名稱、描述、制造商和 hwid。

import serial.tools.list_ports
port_data = []
for port in serial.tools.list_ports.comports():
    info = dict({"Name": port.name, "Description": port.description, "Manufacturer": port.manufacturer,
                 "Hwid": port.hwid})
    port_data.append(info)
print (port_data)

輸出:

[{'Name': 'COM1', 'Description': 'Communications Port (COM1)', 'Manufacturer': '(Standard port types)',
  'Hwid': 'ROOT\\PORTS\\0000'}]

按名稱搜索串行端口

當我們的計算機中有多個端口時,此功能很有用。 如果我們需要任何特定的端口,我們可以根據(jù)我們的選擇通過名稱或描述來搜索它。

讓我們在 Python 中創(chuàng)建一個函數(shù),它將返回我們給定名稱的端口。

import serial.tools.list_ports
def get_port_by_name(port_name):
    for port in serial.tools.list_ports.comports():
        if port.name == port_name:
            return port
print(get_port_by_name("COM1").description)

輸出:

Communications Port (COM1)

代碼很容易掌握。 在我們的函數(shù)中,for 循環(huán)在 comports() 函數(shù)返回的端口列表上運行。

我們在循環(huán)中驗證每個端口的名稱,看它是否與用戶輸入匹配。 如果是,我們返回那個端口。

你可以為描述構造一個類似的函數(shù),它會通過檢查描述來返回端口。

到此這篇關于使用 Python 列出串口的文章就介紹到這了,更多相關Python 列出串口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

沙雅县| 大理市| 青铜峡市| 五大连池市| 慈溪市| 青岛市| 尼勒克县| 桂阳县| 西安市| 阿合奇县| 赤城县| 新沂市| 曲周县| 谷城县| 靖宇县| 云林县| 通山县| 紫金县| 益阳市| 繁峙县| 普格县| 永济市| 徐闻县| 满城县| 南召县| 金华市| 东乡族自治县| 比如县| 潍坊市| 青阳县| 佛坪县| 出国| 贵南县| 榆林市| 青海省| 桓仁| 昌图县| 巴马| 共和县| 习水县| 庆元县|