0

I would like to change the standard output from a terminal to a string. I could use the instruction by Frédéric Hamidi in the web page: python: get the print output in an exec statement , and it works. However, if I would like to run ping command, I couldn't reach to specific char in in the string. there is an error which is "IndexError: string index out of range" I would be grateful if you can help me with this problem.

Thanks a lot Anees

The code:

import sys
from cStringIO import StringIO
import subprocess

code2 ="""
subprocess.call(['ping','www.google.com','-n','1'])
"""

old_stdout = sys.stdout
redirected_output = sys.stdout = StringIO()
exec(code2)
sys.stdout = old_stdout
x= redirected_output.getvalue()
print x
print x[10]
redirected_output.close()
Community
  • 1
  • 1
Anees
  • 19
  • 5

0 Answers0