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

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

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

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

稍后,我們將回顧一些使用 Python 搜索和獲取有關(guān)可用串行端口的詳細(xì)信息的技術(shù)。

COM口簡介

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

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

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

在 Python 中獲取可用串口列表

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

Python 提供了 pySerial 模塊,它提供了對串行端口和相關(guān)信息的訪問。 我們首先需要將包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 來導(dǎo)入整個模塊。

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

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

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

獲取串行端口列表及其詳細(xì)信息

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

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

以下是 ListPortInfo 對象可以為我們提供的有關(guān) COM 端口的詳細(xì)信息:

對象描述
device完整的設(shè)備名稱/路徑。 當(dāng)索引訪問時,這將作為第一個元素返回。
name短設(shè)備名稱。
description人類可讀的描述。 當(dāng)索引訪問時,這將作為第二個元素返回。
hwid硬件 ID。 當(dāng)索引訪問時,這將作為第三個元素返回。
vidUSB 供應(yīng)商 ID。
pidUSB 產(chǎn)品 ID。
serial_number字符串形式的 USB 序列號。
locationUSB 設(shè)備位置字符串。
manufacturerUSB 制造商字符串,由設(shè)備報告。
productUSB 產(chǎn)品字符串,由設(shè)備報告。
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'}]

按名稱搜索串行端口

當(dāng)我們的計算機中有多個端口時,此功能很有用。 如果我們需要任何特定的端口,我們可以根據(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)中驗證每個端口的名稱,看它是否與用戶輸入匹配。 如果是,我們返回那個端口。

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

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

相關(guān)文章

  • windows下numpy下載與安裝圖文教程

    windows下numpy下載與安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了windows下numpy下載與安裝圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Python3并發(fā)寫文件與Python對比

    Python3并發(fā)寫文件與Python對比

    這篇文章主要介紹了Python3并發(fā)寫文件原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Python圖像分割之均勻性度量法分析

    Python圖像分割之均勻性度量法分析

    均勻性度量圖像分割是圖像像素分割的一種方法,當(dāng)然還有其他很多的方法。本文將主要介紹下其原理和實現(xiàn)代碼,感興趣的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • 10個Python運行時的常見錯誤及解決方法

    10個Python運行時的常見錯誤及解決方法

    這篇文章主要為大家詳細(xì)介紹了Python中最常見的10種運行時錯誤,分析它們產(chǎn)生的原因,并提供解決方案,希望可以幫助大家快速定位和解決問題
    2025-05-05
  • python爬取”頂點小說網(wǎng)“《純陽劍尊》的示例代碼

    python爬取”頂點小說網(wǎng)“《純陽劍尊》的示例代碼

    這篇文章主要介紹了python爬取”頂點小說網(wǎng)“《純陽劍尊》的示例代碼,幫助大家更好的利用python 爬蟲爬取數(shù)據(jù),感興趣的朋友可以了解下
    2020-10-10
  • 基于Python開發(fā)一個自動寫作工具

    基于Python開發(fā)一個自動寫作工具

    這篇文章主要為大家詳細(xì)介紹了如何基于Python開發(fā)一個AI自動寫作工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-07-07
  • 一文帶你搞懂Python中的數(shù)據(jù)容器

    一文帶你搞懂Python中的數(shù)據(jù)容器

    這篇文章主要為大家詳細(xì)介紹了Python中數(shù)據(jù)容器的相關(guān)資料,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,感興趣的可以了解一下
    2022-11-11
  • Python 多進(jìn)程、多線程效率對比

    Python 多進(jìn)程、多線程效率對比

    這篇文章主要介紹了Python 多進(jìn)程、多線程的效率對比,幫助大家選擇適合的技術(shù),感興趣的朋友可以了解下
    2020-11-11
  • MAC平臺基于Python Appium環(huán)境搭建過程圖解

    MAC平臺基于Python Appium環(huán)境搭建過程圖解

    這篇文章主要介紹了MAC平臺基于Python Appium環(huán)境搭建過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Django Serializer HiddenField隱藏字段實例

    Django Serializer HiddenField隱藏字段實例

    這篇文章主要介紹了Django Serializer HiddenField隱藏字段實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03

最新評論

买车| 梅河口市| 盐城市| 隆林| 乌审旗| 道真| 巧家县| 图片| 勐海县| 大渡口区| 比如县| 峨山| 克拉玛依市| 盘山县| 古田县| 呼玛县| 靖州| 简阳市| 利川市| 札达县| 浪卡子县| 咸丰县| 中阳县| 南丹县| 五台县| 柳江县| 金溪县| 健康| 威海市| 苏尼特右旗| 遂川县| 通道| 治县。| 茶陵县| 德钦县| 肇源县| 陕西省| 历史| 新兴县| 土默特左旗| 龙游县|