你好,我有这个问题,我正在 python 脚本中执行 shell 命令,问题是我得到两个结果而不是 1。第一个是我想要存储的 id,第二个是 0,我猜它是结果代码。
这是我的代码
import os
cmd = "/path/to/ctl so list | tail -1 | awk '{print $1}'"
event_id = os.system(cmd)
print(event_id)
这是结果:
225
0
我怎样才能删除那个0。
谢谢
答案1
您的猜测是正确的,这0
是 shell 命令的返回代码。os.system(cmd)
正在执行你的命令并输出结果,然后返回代码被存储event_id
并打印。
您应该改用该subprocess
模块。
import subprocess
cmd = "/path/to/ctl so list | tail -1 | awk '{print $1}'"
event_id = subprocess.check_output(cmd, shell=True).rstrip()
print(event_id)