我一直在用python编写代码,以便开发一个处理串行连接的库。碰巧python进程不会随着我的程序结束而结束,下一次当我运行我的程序并试图打开一个串行端口(我几乎总是关闭它)时,它返回一个windows错误5,访问被拒绝。
如果我手动签入任务栏并终止旧的python进程,我就可以连接到com端口。我想通过以下方式程序化地处理这个异常: 1.找到持有我的串行端口的旧进程,并通过代码杀死它。2.在开始我的代码之前进行一些清理操作。
有没有人能推荐一些技巧?顺便说一下,我只能使用Python 2.7
发布于 2014-09-22 11:16:13
这是所有程序都会遇到的限制。(我也曾在昂贵的商业产品中遇到过这种情况)
您可以尝试拔出并重新插入串行适配器,但除此之外,最好只执行适当的异常处理( python非常适合),并确保在退出程序之前始终关闭端口。
最简单的形式是:
try:
# all your code...
except Exception as e:
print("unhandled exception: {}".format(str(e))
finally:
# close the serial port...即使在您没有针对特定异常的处理程序的情况下,也始终保证命中将关闭/释放串行端口的代码。
https://stackoverflow.com/questions/25809098
复制相似问题