Извлечь содержимое RPM во временный каталог в Python

Я пишу инструмент для проверки RPM в Python и распечатываю фактические различия в файлах, которые были изменены.

Я могу получить RPM с ftp-сервера с ftplib . Я думал о сохранении rpm в /tmp и использовании модуля subprocess для запуска

 rpm2cpio myrpmfile.rpm | cpio -idmv 

чтобы получить файлы в RPM, чтобы я мог различать файлы. Впоследствии я удалю временные файлы.

Кажется, немного взломанный, так это лучший подход, или есть более элегантное решение с Python?

Возможно, вы можете использовать один из интерфейсов libarchive python, поддерживающий файлы cpio. Главные из них, похоже, являются либрархивом и libarchive-c . RPM также поставляется с интерфейсом python, но, похоже, он значительно больше работает, чтобы заставить его делать то, что вы хотите сделать.