Как я могу получить список доступных пакетов обновления и записать его в файл, используя python?
Когда я запускаю apt-get upgrade > output
, он работает в bash.Я думаю, что я должен отправить сигнал прерывания ( Ctrl + C ) в программе Python.
Любые предложения о том, как этого добиться?
Я попробовал это в коде сейчас:
#!/usr/bin/env python
import subprocess
apt = subprocess.Popen([r"apt-get", "-V", "upgrade", ">", "/usr/src/python/upgrade.log"], stdin=subprocess.PIPE)
apt_stdin = apt.communicate()[0]
, но он завершается и не записывает в файл.
Это работает, но я получаю ошибку, когда яперенесите это на другие системы Debian:
import apt
cache=apt.Cache()
cache.update()
cache.open(None)
cache.upgrade()
for pkg in cache.get_changes():
# print pkg.name, pkg.summary
fileHandle = open('/tmp/upgrade.log', 'a')
fileHandle.write(pkg.name + " - " + pkg.summary + "\n")
и ошибка ....
/usr/lib/python2.5/site-packages/apt/__init__.py:18: FutureWarning: apt API not stable yet
warnings.warn("apt API not stable yet", FutureWarning)
Traceback (most recent call last):
File "apt-notify.py", line 13, in <module>
for pkg in cache.get_changes():
AttributeError: 'Cache' object has no attribute 'get_changes'