0

我们想通过python脚本运行以下shell命令(我们使用python 2.7版)

echo hadoop-hdfs-namenode - 2.6.4.0-91| grep hadoop-hdfs-namenode | awk '{print $NF}' | awk '{printf "%.1f\n", $NF}'
2.6

所以我创建了以下 python 脚本来获得结果 -2.6

import os

os.system("echo hadoop-hdfs-namenode - 2.6.4.0-91| grep hadoop-hdfs-namenode | awk '{print $NF}' | awk '{printf "%.1f\n", $NF}' ")

但是当我运行它时,我们得到

 os.system("echo hadoop-hdfs-namenode - 2.6.4.0-91| grep hadoop-hdfs-namenode | awk '{print $NF}' | awk '{printf "%.1f\n", $NF}' ")
                                                                                                                        ^
SyntaxError: invalid syntax

是否可以通过 python 运行这个复杂的 shell?,为了得到预期的结果——2.6

以及如何修复我的语法?

4

1 回答 1

4

逃脱"\n os.system("echo hadoop-hdfs-namenode - 2.6.4.0-91| grep hadoop-hdfs-namenode | awk '{print $NF}' | awk '{printf \" %.1f\\n \", $NF}' ")

作为旁注os.system将在子shell中执行命令(字符串)并返回命令的返回码,如果您需要输出,请查看子进程模块:https ://docs.python.org/3/library /subprocess.html

于 2020-07-08T11:18:39.327 回答