Python извлекает встроенные файлы из RTF с их именами - PullRequest
0 голосов
/ 21 марта 2019

Я использую rtfobj, который является частью oletools для python, чтобы извлечь внедренный файл из файла RTF.

    for start_offset, len, _, buff in rtfobj.rtf_iter_objects(rtf_file_path):
        temp = NamedTemporaryFile(delete=False)
        temp.write(buff)
        temp.flush()
        f = OleFileIO(temp.name)
        streams = [x for x in f.listdir() if 'Package' in x or 'CONTENTS' in x]
        stream_buffers = [f.openstream(stream).getvalue() for stream in streams]
        for stream in stream_buffers:
            with open("embedded_file", "wb") as f:
                f.write(stream)

Работает хорошо. Встроенный файл сохранен и открывается просто отлично.

Мой вопрос: как я могу получить имя файла? Я знаю, что эти данные где-то там, потому что, когда я открываю файл rtf в Office (например), он показывает мне внутренний файл с его именем, но я не могу найти способ получить имя с помощью кода Python ..

Спасибо

...