python - 如果安装了 coreutils 8.24 或更高版本,我如何在 Python 中查找?

标签 python linux

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 命令不是您真正想要的命令。

关于python - 如果安装了 coreutils 8.24 或更高版本,我如何在 Python 中查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50743112/

相关文章:

python - Yaml 字符串中的反斜杠

python - 尝试复制 TFIDF 示例,乘法返回错误的数字

python - 文本方 block 出现在 linux 上的 phantomjs 而不是单词

android - Android NDK 应用程序中的 wstring 支持

c++ - undefined reference 错误的含义

python - django 模型中的通用关系是什么

python - 如何使用 Gtk.events_pending?

python - 连续获取所有唯一值

c++ - 使用 C++ 安装 Eclipse for scientific linux

linux - 如何防止其他用户停止/删除我的 docker 容器