Поймать вывод терминала в Python

Я хочу сделать что-то похожее на второй ответ здесь (но не совсем похоже):Имитация прерывания клавиатуры Ctrl-C в Python при работе в Linux

Это намного проще, и я думаю, что я что-то упустил. Скажем, из сценария Python я просто хочу вызвать ping и завершить его после 10-го раза. Я пытаюсь сделать это как по ссылке выше:

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)

Но это не работает.

И я также хочу, чтобы обычный вывод команды ping отображался. Как мне это сделать?

РЕДАКТИРОВАТЬ: Это на самом деле не «пинг», что я хочу сделать. Я просто использую это как пример команды с непрерывным выводом, которую со временем я хотел бы прекратить.

Более конкретно, я использую старую версию BitTorrent (v5.0.9 из 3-го ответа здесь:Где найти исходный код BitTorrent?) и я звоню через скрипт на python. Bittorrent-console.py - это простая терминальная версия, следовательно, 'console'. Периодически выводит несколько строк. Что-то вроде:

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

Я на самом деле называю это:

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

Я хочу прекратить это автоматически, когда я вижу, что это 100.0 в 'процентах выполнено:'.

РЕДАКТИРОВАТЬ: я работаю на CentOS, Python 2.6.

Ответы на вопрос(2)

Ваш ответ на вопрос