Terminal-Ausgabe in Python abfangen

Ich möchte hier etwas Ähnliches wie die zweite Antwort machen (aber nicht ganz ähnlich):Simulieren Sie einen Strg-C-Tastatur-Interrupt in Python, während Sie unter Linux arbeiten

Es ist viel einfacher und ich denke, ich vermisse nur etwas. Angenommen, ich möchte in einem Python-Skript einfach "ping" aufrufen und es nach dem 10. Mal beenden. Ich versuche es wie über den obigen Link zu tun:

p = subprocess.Popen(['ping', 'google.com'], stdout=subprocess.PIPE)
for line in p.stdout:
  print line
  if re.search('10', line):
    break
os.kill(p.pid, signal.SIGINT)

Aber es geht nicht.

Und ich möchte auch, dass die reguläre Ausgabe von 'ping' angezeigt wird. Wie mache ich das?

EDIT: Es ist eigentlich kein "Ping", den ich machen möchte. Ich verwende es nur als Beispiel für einen Befehl mit kontinuierlicher Ausgabe, den ich mit der Zeit beenden möchte.

Insbesondere verwende ich eine alte Version von BitTorrent (v5.0.9 ab der 3. Antwort hier:Wo finde ich den BitTorrent-Quellcode?) und ich rufe es per Python-Skript auf. Die bittorrent-console.py ist eine einfache Terminalversion, daher 'console'. Es werden regelmäßig mehrere Zeilen ausgegeben. So etwas wie:

saving:       filename
file size:    blah
percent done: 100.0
blah:         blahblah

Ich rufe es an durch:

subprocess.call(['./bittorrent-console.py', 'something.torrent'])

Ich möchte es automatisch beenden, wenn 100,0 in "Prozent erledigt:" angezeigt werden.

BEARBEITEN: Ich verwende CentOS, Python 2.6.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage