【问题标题】:How to convert subprocess.popen.object to normal string in python 2.5?如何在 python 2.5 中将 subprocess.popen.object 转换为普通字符串?
【发布时间】:2017-01-31 17:23:19
【问题描述】:

我正在执行下面的代码,它工作正常,但它给出的输出是“subprocess.Popen object at 0x206”

import sys
from subprocess import Popen 
var1= "I am testing"
Process=Popen('/home/tester/Desktop/test.sh %s' % (str(var1),), shell=True)
print Process

返回:subprocess.Popen object at 0x206

另外,test.sh 只是回显给定的变量,它所拥有的只是:

#!/bin/bash 
echo $1 
echo $2

不幸的是,我无法从 2.5 升级我的应用程序 python 版本,因此无法使用当前的子进程功能,例如 check_ouput,我正在寻找一种可以将给定输出转换为普通字符串的解决方案?

【问题讨论】:

  • 因为这就是Process。如果你想与之交互,它是一个带有方法的对象,例如返回封装过程的输出。

标签: python subprocess python-2.5


【解决方案1】:

您需要将 stdout 和 stderr 传递给 Popen 并读取它们:

proc = subprocess.Popen('/home/tester/Desktop/test.sh %s' % (str(var1),), stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
out, err = proc.communicate()  # Read data from stdout and stderr

print out
print err

【讨论】:

  • 是的,这就是我们所缺少的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-03
  • 2018-06-08
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
相关资源
最近更新 更多