python добавляет тарабарщину при чтении из файла .rtf?

У меня есть файл .rtf, который содержит только целое число, скажем, 15. Я хочу прочитать это целое число через python и каким-то образом манипулировать этим целым числом. Однако кажется, что python читает большую часть метаданных, связанных с файлами .rtf. Почему это? Как я могу этого избежать? Например, пытаясь прочитать в этом файле, я получаю ..

{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf460 {\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\colortbl;\red255\green255\blue255;} \margl720\margr720\margb720\margt720\vieww9000\viewh8400\viewkind0 пард\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\ql\qnatural\pardirnatural


person Chris    schedule 12.10.2009    source источник


Ответы (2)


Такова природа .RTF (т. е. файлов Rich Text), они включают дополнительные данные, определяющие способ компоновки и форматирования текста.

Не рекомендуется хранить данные в таких файлах, чтобы не столкнуться с отмеченными вами трудностями. Если вы попытаетесь проанализировать этот файл и «восстановить» свое единственное числовое значение, вы можете подвергнуть свое приложение риску обновленных версий формата RTF, которые могут сделать логику анализа частично неверной и, следовательно, дать неверные числовые данные для заявление).

Почему бы не сохранить эту информацию в текстовом файле. Это может быть простой текстовый файл или предпочтительно файл XML, YAML, JSON, например, для дополнительной «прямой» совместимости с вашим приложением, и вы можете добавить дополнительные параметры и тому подобное в файл.

Однако, если этот файл задан, вероятно, существуют библиотеки Python для чтения и записи в него. Проверьте индекс пакетов Python (PyPI) на наличие ключевого слова RTF.

person mjv    schedule 12.10.2009

Это именно то, что содержится в файле RTF, поэтому Python (в отсутствие дальнейших инструкций) дает вам то, что содержится в файле.

Возможно, вам нужна библиотека для чтения содержимого файлов RTF, например пиртф-нг.

person Greg Hewgill    schedule 12.10.2009