Python PySerial.How如何知道端口是否已经打开?

nic*_*ngo 8 pyserial

我正在尝试使用python和PySerial编写一个在Linux PC中使用串行端口的应用程序.但是在这台PC中还有其他使用串口的应用程序.在尝试使用之前,如何知道其他应用程序是否已打开某个端口?

谢谢

Sta*_*ode 19

似乎在PySerial网站上记录得很糟糕,这对我有用:

ser = serial.Serial(DEVICE,BAUD,timeout=1)
if(ser.isOpen() == False):
    ser.open()
Run Code Online (Sandbox Code Playgroud)

一个人为的例子,但你明白了.我知道很久以前就问过这个问题了,但我今天也有同样的问题,觉得找到这个页面的其他人都会喜欢找到答案.

  • 我刚刚在 2017 年 8 月在 Google 中找到了这个 - 位列榜首。感谢您以您的方式发布此内容。它准确地回答了我的问题。就我而言,这意味着该程序已经在运行。我使用 ssh 进入计算机,有时我会从控制台运行数据记录器程序“ssx”。Python 现在可以使用它来检测它而无需中止,并使用 os.system("killall ssx") 自行停止另一个。这只发生在我进行更改时,但这足以让我进行搜索。你就在这里。特恩克斯。 (2认同)

Ful*_*ler 2

检查Serial.serial的返回输出,它返回一个可以捕获的无效异常。

API 文档
异常文档

除此之外,如果当您的程序尝试访问该端口时该端口实际上已关闭,则抛出的错误是非致命的,并且非常清楚其失败的原因。