2014-09-12 45 views
1

我一直在python編碼開發一個庫來處理串行連接。恰巧python進程並沒有以我的程序結束而結束,下一次當我運行我的程序並嘗試打開一個串行端口時(我大多數情況下總是關閉它),它返回一個windows錯誤5,Access被拒絕。串行端口訪問被拒絕錯誤

如果我手動檢查任務欄並殺死舊的python進程,我可以連接到com端口。我想通過編程方式來處理這個異常: 1.找到持有我的串行端口的舊進程並通過代碼殺死它。 2.在開始我的代碼之前進行一些清理操作。

任何人都可以提出一些技巧嗎? 順便說一句,我只能使用Python 2.7

回答

1

這是所有程序都會遇到的限制。 (我也有這種情況發生在昂貴的商業產品上)

您可能會嘗試拔下並重新插入串口適配器,但除此之外最好只執行適當的異常處理(適用於python),並確保在退出程序之前始終關閉該端口。

這個最簡單的形式是:

try: 
    # all your code... 
except Exception as e: 
    print("unhandled exception: {}".format(str(e)) 
finally: 
    # close the serial port... 

即使在你沒有爲特定異常的處理程序的情況下,你總能保證命中,將關閉/釋放代碼串口。