linux - 将 linux 命令输出分配给 python 2.6.6 中的变量

标签 linux shell python

我正在尝试将 shell 脚本移植到 python。使用了谷歌搜索的各种方法,但似乎都不起作用。

这是shell命令。

version=`awk '{print $5}' file_name | tr -d ")" `

这些是尝试过的方法。

version = subprocess.call(['awk','{print $5}','file_name','|','tr','-d'], shell=True)
version = os.system("`awk '{print $5}' file_name | tr -d ")" `", shell=True)
version = commands.getstatusoutput(" awk '{print $5}' file_name | tr -d ")"  ")

以上命令均无效。有人可以帮我解决一下吗。

最佳答案

您的示例存在各种引用错误。

最直接的解决方案是:

subprocess.call('awk \'{print $5}\' file_name | tr -d ")"', shell=True)

但不推荐这样做,因为 file_name 可以包含空格(您可以通过 shell=False 和正确使用参数列表来绕过,但它变得不可读)。

我建议 str.replace(')', '') 代替 tr -d,以及类似x.split()[ 4] for x in open('file_name') 而不是 awk,以获得纯 python 版本。

关于linux - 将 linux 命令输出分配给 python 2.6.6 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49906994/

相关文章:

c - 在 C 中找出 eth 设备链接速度能力

linux - 通过 Cygwin 发送电子邮件

linux - 通过在 linux 中删除 url 参数来重命名文件

python - Tornado 安全问题

c - 如何模拟大量使用的内存

android - 在 gdb 中看不到任何函数

linux - 关闭 USB 端口的电源

c++ - 为特定目录中除其子目录外的所有 C++ 文件生成标签文件

Python/Django 将枚举列表渲染到表中

python - numpy 中的二阶梯度