Я удаляю некоторые пакеты в Linux через модуль Python OS мой код, как

def uninstallZdev():
    print 'Uninstallation as a Super User'
    system('apt-get remove xxx')

uninstallPackage()

Но удалить пакет спросить как

После этой операции будет освобождено 2621 кБ дискового пространства. Хотите продолжить [Да / Нет]? как дать Y в программе через Python

2
Reegan Miranda 23 Янв 2013 в 14:21

2 ответа

Лучший ответ

Настройте apt-get не запрашивать (см. apt-get страницу руководства :

apt-get --assume-yes remove xxx

Для инструментов, которые нельзя настроить, используйте pexpect, чтобы управлять процессом. pexpect позволяет прослушивать выходные данные подпроцесса и отправлять входные данные на основе простого API:

import pexpect

ag = pexpect.spawn('apt-get remove xxx')
ag.expect('Do you want to continue')
ag.send('Y')
ag.wait()
ag.close()
4
Martijn Pieters 22 Фев 2013 в 17:21

Используйте -y для автоматизации apt-get. Таким образом, вам не нужно имитировать нажатие клавиши «y».

Кстати, я бы рекомендовал использовать модуль подпроцесса, особенно если вы планируете работать с stdin / stdout.

И: будь осторожен! Вы, кажется, запускаете это как root или с помощью sudo. Если по какой-то причине xxx окажется libc-bin, вам будет весело восстанавливать вашу систему.

0
Thorsten Kranz 23 Янв 2013 в 10:27