Python:使用ssh连接替换shell管道,并在python变量中获取结果

时间:2018-07-26 17:34:10

标签: python subprocess pipe

这个问题是指对本文的一些扩展。 (Python: replacing shell pipeline with an ssh connection)。 这是关于在Python中翻译以下bash命令:

<dxi-column *ngFor="let col of columns" caption="{{col.caption}}" visible="{{col.show}}"></dxi-column>

带有子流程库和以下代码:

cat SomePythonScript.py | ssh remote_machine 'python'

效果很好。然后,我将输出转换为字节:

 from subprocess import  PIPE , Popen

  p1 = Popen(["cat", "SomePythonScript.py"], stdout=PIPE)
  p2 = Popen(["ssh", "remote_machine", "cat - | python"], stdin=p1.stdout,stdout=PIPE)

  p1.stdout.close()  
  output = p2.communicate()[0]

取回我的python项目中的数据:这是我不满意的地方,需要一些帮助。 现在,我要避免ast.literal_eval 并直接获取数据。

我虽然打算将bash命令更改为

output_= ast.literal_eval(output[0].decode("utf-8"))

并通过子流程进行翻译。这是正确的方法吗?如果是,您可以帮助我进行子流程吗?从上周开始,我在子流程上取得了一些进展,但是又一次被阻止了:( ahhh

非常感谢您

0 个答案:

没有答案