title: ping for indefinite amount of time and get its output in Python
body: <p>The task is: Try to send ping in python using the most basic form like "ping 8.8.8.8". After some time terminate the ping command (In a terminal, one will do Ctrl+C) and get its output. The last several lines of output which shows the ping statistics are of particular interest. </p>
  
  <p>Two methods tried, did not work. My OS version is Mac OS X 10.10.1.</p>
  
  <p>First method uses module pexpect, and ping will stop after about 17 seconds though I did not ask it to stop:</p>
  
  <pre><code>import pexpect
  import time
  child = pexpect.spawn('ping 8.8.8.8')
  (x, y) = child.getwinsize()
  print x
  print y
  time.sleep(21)
  child.terminate()
  x = child.read()
  print x
  </code></pre>
  
  <p>Second Method uses module subprocess, and the last several lines of ping output are lost:</p>
  
  <pre><code>import time
  from subprocess import PIPE, Popen
  child = Popen(['ping', '8.8.8.8'], stdin = PIPE, stdout = PIPE, stderr = PIPE)
  time.sleep(5)
  child.terminate()
  x = child.stdout.read()
  print x
  x = child.stderr.read()
  print x
  </code></pre>
  
  <p>I'd appreciate any help! "ping -c XXX" is not accepted.</p>