欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

COM口簡(jiǎn)介

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

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

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

在 Python 中獲取可用串口列表

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

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

要安裝包,我們必須在 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']

讓我們討論一下我們?cè)诖a中做了什么。 我們必須編寫 import serial 才能使用已安裝的包。

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

我們將在本文后面討論這個(gè) ListPortInfo 對(duì)象包含什么。

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

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

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

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

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

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

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

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

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

現(xiàn)在,讓我們編寫一個(gè)代碼來獲取所有可用 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ì)算機(jī)中有多個(gè)端口時(shí),此功能很有用。 如果我們需要任何特定的端口,我們可以根據(jù)我們的選擇通過名稱或描述來搜索它。

讓我們?cè)?Python 中創(chuàng)建一個(gè)函數(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ù)返回的端口列表上運(yùn)行。

我們?cè)谘h(huán)中驗(yàn)證每個(gè)端口的名稱,看它是否與用戶輸入匹配。 如果是,我們返回那個(gè)端口。

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

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

相關(guān)文章

  • python用fsolve、leastsq對(duì)非線性方程組求解

    python用fsolve、leastsq對(duì)非線性方程組求解

    這篇文章主要為大家詳細(xì)介紹了python用fsolve、leastsq對(duì)非線性方程組進(jìn)行求解,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Python基于ImageAI實(shí)現(xiàn)圖像識(shí)別詳解

    Python基于ImageAI實(shí)現(xiàn)圖像識(shí)別詳解

    ImageAI是一個(gè)面向計(jì)算機(jī)視覺編程的Python庫,支持最先進(jìn)的機(jī)器學(xué)習(xí)算法。本文將利用ImageAI實(shí)現(xiàn)圖像識(shí)別功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • Puppeteer使用示例詳解

    Puppeteer使用示例詳解

    這篇文章主要介紹了Puppeteer使用示例詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-06-06
  • Python正則表達(dá)式常用函數(shù)總結(jié)

    Python正則表達(dá)式常用函數(shù)總結(jié)

    這篇文章主要介紹了Python正則表達(dá)式常用函數(shù),結(jié)合實(shí)例形式總結(jié)分析了Python正則表達(dá)式常用函數(shù)功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-06-06
  • 利用soaplib搭建webservice詳細(xì)步驟和實(shí)例代碼

    利用soaplib搭建webservice詳細(xì)步驟和實(shí)例代碼

    這篇文章主要介紹了使用python soaplib搭建webservice詳細(xì)步驟和實(shí)例代碼,大家可以參考使用
    2013-11-11
  • 深入學(xué)習(xí)Python中的上下文管理器與else塊

    深入學(xué)習(xí)Python中的上下文管理器與else塊

    這篇文章主要給大家介紹了關(guān)于Python中上下文管理器與else塊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • Flask利用自定義接口實(shí)現(xiàn)mock應(yīng)用詳解

    Flask利用自定義接口實(shí)現(xiàn)mock應(yīng)用詳解

    后端接口已提供,前端需要依賴后端接口返回的數(shù)據(jù)進(jìn)行前端頁面的開發(fā),如何配合前端?這篇就來介紹一下Flask如何利用自定義接口實(shí)現(xiàn)mock應(yīng)用,需要的可以參考一下
    2023-03-03
  • Python使用Dash開發(fā)網(wǎng)頁應(yīng)用的方法詳解

    Python使用Dash開發(fā)網(wǎng)頁應(yīng)用的方法詳解

    本文主要是通過Dash的Checklist組件,簡(jiǎn)單介紹使用Dash開發(fā)的Web應(yīng)用,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2022-09-09
  • Python自定義命令行參數(shù)選項(xiàng)和解析器

    Python自定義命令行參數(shù)選項(xiàng)和解析器

    這篇文章主要介紹了Python自定義命令行參數(shù)選項(xiàng)和解析器,本文主要使用的方法為argparse.ArgumentParser(),此模塊可以讓人輕松編寫用戶友好的命令行接口,程序定義它需要的參數(shù),需要的朋友可以參考下
    2023-07-07
  • Python中的asyncio代碼詳解

    Python中的asyncio代碼詳解

    asyncio 是用來編寫 并發(fā) 代碼的庫,使用 async/await 語法。 asyncio 被用作多個(gè)提供高性能 Python 異步框架的基礎(chǔ),包括網(wǎng)絡(luò)和網(wǎng)站服務(wù),數(shù)據(jù)庫連接庫,分布式任務(wù)隊(duì)列等等。這篇文章主要介紹了Python中的asyncio,需要的朋友可以參考下
    2019-06-06

最新評(píng)論