python-3.x - 如何只等待一定的时间让系统调用运行
问题描述
我正在 python 中制作一个简单的 ping 脚本,并希望添加用于获取已启动 IP 的主机名的功能。为此,我得到nmblookup -A {ip}
using的输出os.popen
,并解析输出。我遇到的问题是,对于 nmblookup 不起作用的系统(例如路由器),该命令需要很长时间才能得到错误,而当该命令成功运行时,它会在一秒钟内重新运行结果。我的问题是如何只等待 N 秒让nmblookup
命令返回某些内容,如果没有,继续执行程序?PS,这都是在linux中。
解决方案
您可以在命令前加上 timeout。请参阅它的手册页。
你可以做一个 Popen 并运行你的命令
root@ak-dev:~# timeout 1 sleep 20
root@ak-dev:~# echo $?
124
推荐阅读
- python - 有多少用户在 python 中有相同的字符串值出现
- python - Selenium 没有关闭 docker 内的浏览器进程
- amazon-web-services - 如何使用这种架构在 Elastic Search 中复制索引?
- c# - ASP.NET Core 视图组件名称 X 匹配多种类型:
- javascript - 在 Vue 中,单击时将多个按钮之一更改为活动状态
- tensorflow - 关键错误:logtostderr(python,tensorflow)
- css - 如何让第 n 个类型的模式像 1-2-2-1 一样工作?
- qlikview - Qlikview 使用 forloop 迭代临时表的结果集
- django - 为什么我不能在管理站点上注册我的 Django App 模型?
- python - 如何改进正则表达式以找到最合适的 URL 字符串?