python - 如果安装了 coreutils 8.24 或更高版本,如何在 Python 中查找?
问题描述
coreutils 8.24 有一个监控 dd 进度的功能
(另见: https ://askubuntu.com/questions/215505/how-do-you-monitor-the-progress-of-dd/539305 )
这意味着,我可以调用 shell 突击队,例如
dd if=/dev/urandom of=/dev/null status=progress
在执行上述指定命令时,如何确保在主机系统上安装了正确的 coreutils 版本?
由于这条线是 Python 应用程序的一部分,可能在不同的发行版上运行,因此使用包管理器进行验证并不是最好的方法。此外,我们无法使用which
命令验证已安装库的存在。
解决方案
您可以调用subprocess.check_output因为dd
提供了一个--version
标志来输出它的版本:
import subprocess
m = subprocess.check_output(["dd", "--version"])
ver_line = m.split('\n')[0]
ver = ver_line.split(' ')
msg = 'dd status=progress does not work'
if float(ver[2]) >= 8.24:
msg = 'dd status=progress works'
print msg
可能是一个足够好的版本检查。
我不认为您的示例dd
命令是您真正想要的。
推荐阅读
- image-processing - 在此示例中,相关性如何对偶数大小的过滤器起作用?
- java - 模式匹配器返回意外值
- excel - VBA如何动态生成选项按钮的名称?
- css - 你如何使文本输入边框重叠?
- elasticsearch - GKE 上的 Elasticsearch - 无法使用 gcs 插件配置快照和还原
- apache-spark - 高效的 Spark JSON 转换
- node.js - 在 Gatsby 构建期间检索文件内容
- elasticsearch-2.0 - 如何在elasticsearch中构建促销数据
- reactjs - 单击时反应模态图像不显示大尺寸图像
- javascript - 如何根据同一段落中的语言更改字体?