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

时间:2018-06-07 13:56:41

标签: 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命令验证是否存在已安装的库。

1 个答案:

答案 0 :(得分:2)

您可以调用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命令是您真正想要的。