Python добавление тарабарщины при чтении из файла .rtf? - PullRequest
1 голос
/ 12 октября 2009

У меня есть файл .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

Ответы [ 2 ]

4 голосов
/ 12 октября 2009

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

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

4 голосов
/ 12 октября 2009

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

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

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

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

...