import subprocess
awk1 = subprocess.check_output("awk '{print $1}' "+file+"").decode("utf-8")
print(awk1)
这个代码给出了我想要的结果;我使用AWK
,因为我发现提取$2-$5比使用Python
更容易
当我打印awk1时,它给了我
HEADER
DESCRIPTION (can be over multiple lines)
TEST TYPE
RESULTS (numbers below are just examples)
-999.00
-500
-100.15
+1
+23.111
+500
我想做的是确定是否有任何结果大于-500。我试图使用max()
,但这是抛出错误,因为我有str和int
的存在。同样出于某种原因,如果我尝试将其放入循环(for i in akw1
…)中,它将垂直打印它,例如
1
0
0
.
1
5
Instead of 100.15
结果开头的行可以具有不同的长度,结果中的行也可以包含字符串。哪种方法最有效地删除字符串,然后确定数字是否大于指定数量?多谢各位
subprocess.check_output()将返回
bytes
(类似str
)。因此,对它进行迭代将得到每个单独的字符,例如"H"
,然后"E"
,然后"A"
,等等您可以做的是首先用换行符
"\n"
将其拆分。然后在列表上迭代并尝试转换为int。如果可以转换,请检查它是否超过-500。否则,如果无法转换,则忽略它并移动到下一个输出
相关问题 更多 >
编程相关推荐