我想从我的python脚本执行netcat命令,所以我使用' subprocess.Popen',但问题是这个命令的输出直接打印在may shell控制台中,我想要得到他是一个变量,所以我可以在打印前做一些修改。
res = subprocess.Popen("nc -v 192.168.1.1 25", stdout=subprocess.PIPE, stderr=None, shell=True)
#output = res.communicate()
#output = str(output)
#print output
答案 0 :(得分:0)
如果你想在Python中使用sh库轻松调用shell命令。
在sh中,这将是:
from sh import nc
output = nc("-v", "192.168.1.1", "25") # output is string of the command output
与往常一样,installing Python libraries are recommended to do with virtualenv。
答案 1 :(得分:0)
我用它来捕获系统命令的输出,注意它只会得到最后一行。根据需要修改最后一行以获得更多:
def GetOutput(command):
lastline = os.popen(command).readlines()
result = lastline[0].rstrip()
return result