2014-09-12 130 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... 

即使在你没有为特定异常的处理程序的情况下,你总能保证命中,将关闭/释放代码串口。