Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/48: Рейтинг темы: голосов - 48, средняя оценка - 4.63
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335

Прочитать файл с расширением rtf

21.12.2020, 20:32. Показов 10920. Ответов 79
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте, использую код
Python
1
2
3
4
from pyth.plugins.rtf15.reader import Rtf15Reader
 
rtf_текст = Rtf15Reader.read(open(rtf_файл, "r"))
print("len(rtf_текст)", len(rtf_текст))
получаю ошибку
Traceback (most recent call last):
File "C:\pythonProject\main.py", line 104, in <module>
from pyth.plugins.rtf15.reader import Rtf15Reader
ModuleNotFoundError: No module named 'pyth'

что я делаю не так? спс
подзабыл "r" - это чтение, а какой параметр у изменения файла?

Добавлено через 3 часа 54 минуты
читаю инфу, правда она бородатая 2000-х годов
Перейдите к загрузкам, чтобы получить PyRTF
то есть я ещё должен что-то загрузить? ничего по сей день не изменилось?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2020, 20:32
Ответы с готовыми решениями:

Прочитать rtf файл постранично
Так я читаю rtf файл using (OpenFileDialog openFile = new OpenFileDialog()) { ...

Как программно пересохранить word-овский документ в файл с расширением «.rtf»
Dim word = New Word.Application word.Documents.Open(&quot;\...\Doc1.doc&quot;) ...

Прочитать файл с расширением TDMS
в работе в программе на си нужно прочитать файл с таким расширение кто может подсказать что это за зверь никогда не встречал и как его...

79
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
02.01.2021, 18:05  [ТС]
Студворк — интернет-сервис помощи студентам
чтобы ответить на вопрос, нужно грохнутый venv - восстанавливать-так к слову сказал, чтобы не было недопонимания
восстановил venv, вот ответ:
['C:\\pythonProject', 'C:\\Users\\q8902', 'C:\\Users\\q8902\\AppData\\Local\\Progr ams\\Python\\Python39\\python39.zip', 'C:\\Users\\q8902\\AppData\\Local\\Progr ams\\Python\\Python39\\DLLs', 'C:\\Users\\q8902\\AppData\\Local\\Progr ams\\Python\\Python39\\lib', 'C:\\Users\\q8902\\AppData\\Local\\Progr ams\\Python\\Python39', 'C:\\pythonProject\\venv', 'C:\\pythonProject\\venv\\lib\\site-packages']
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
02.01.2021, 18:07
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
нужно грохнутый venv - восстанавливать
Его не нужно восстанавливать. Все действия выше были ради того, чтобы его не было в sys.path.
Ну или попробуй поставить пакет pyth3 в том же окне настроек интерпретатора. Слева внизу кнопка +.
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
02.01.2021, 18:21  [ТС]
['C:\\pythonProject', 'C:\\Users\\q8902', 'C:\\Users\\q8902\\AppData\\Local\\Progr ams\\Python\\Python39\\python39.zip', 'C:\\Users\\q8902\\AppData\\Local\\Progr ams\\Python\\Python39\\DLLs', 'C:\\Users\\q8902\\AppData\\Local\\Progr ams\\Python\\Python39\\lib', 'C:\\Users\\q8902\\AppData\\Local\\Progr ams\\Python\\Python39', 'C:\\pythonProject\\venv', 'C:\\pythonProject\\venv\\lib\\site-packages']

Добавлено через 6 минут
Цитата Сообщение от 0x10 Посмотреть сообщение
Слева внизу кнопка +
аккурат в том месте знак вопроса
https://cloud.mail.ru/public/8ngf/GZhsCiZuj
ну судя по увиденному вроде стоит pyth3
и петрович в двух разливах)) и где плюсик?
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
02.01.2021, 18:21
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
чем и плох питон, высоким порогом вхождения
Нет никакого высокого порога.
Просто ты не знаешь многих очевидных и элементарных вещей, которые к самому языку отношения не имеют.
Это называется нулевая компетенция. Как если бы я научившись ездить на велосипеде решил сразу пересесть за руль легковушки ничего не зная о ПДД и прочих сопутствующих вещах.
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
02.01.2021, 18:52
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
и где плюсик?
Было бы проще мне подключиться по teamviewer и нажать две кнопки…

Добавлено через 25 минут
Резюме такое. Есть два окружения, с которыми может быть запущен интерпретатор. Одно — дефолтное (в данном случае уровня пользователя), второе — виртуальное (в данном случае уровня проекта), созданное ide при создании проекта. Нужно следить, какое окружение используется при запуске скрипта и куда ставятся пакеты. В данном случае пакет ставился на уровень пользователя, а используется интерпретатор уровня проекта.
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
02.01.2021, 18:58  [ТС]
спасибо добрый питонист
после вашего подключения и манипуляций
было сказано, что нужно разбираться с файлом...
я подумал, что внутри его что-то ему не нравится
создал новый с цифрами 11
на одну строчку спустился
Traceback (most recent call last):
File "C:\pythonProject\main.py", line 44, in <module>
rtf_текст = Rtf15Reader.read(open(rtf_файл, "r"))
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 94, in read
return reader.go()
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 109, in go
raise WrongFileType("Doesn't look like an RTF file")
pyth.errors.WrongFileType: Doesn't look like an RTF file

вау
0
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
03.01.2021, 00:13
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
pyth.errors.WrongFileType: Doesn't look like an RTF file
Ты создал не rtf файл. RTF нельзя создать в блокноте - это мета-тэговый файл MS Word. Формат является проприетарным (microsoft) и создать файл можно либо в WordPad, либо MS Word, либо продвинутом текстовом процессоре (не редакторе!), который умеет экспортировать текст в этот формат.
0
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
03.01.2021, 10:58  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Doesn't look like an RTF file
Не похоже на файл RTF
Цитата Сообщение от Garry Galler Посмотреть сообщение
RTF нельзя создать в блокноте - это мета-тэговый файл MS Word
я и не спорю, я его и создал в Ворде, видимо нужно приложить...убедились? как далее действовать? спс
Вложения
Тип файла: 7z 11.7z (6.8 Кб, 8 просмотров)
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
03.01.2021, 11:18
Лучший ответ Сообщение было отмечено Ципихович Эндрю как решение

Решение

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
как далее действовать?
По мотивам официального примера:
Python
1
2
3
4
5
6
7
from pyth.plugins.rtf15.reader import Rtf15Reader
from pyth.plugins.xhtml.writer import XHTMLWriter
 
 
doc = Rtf15Reader.read(open('11.rtf', 'rb'))
html_doc = XHTMLWriter.write(doc, pretty=True).read().decode('utf-8')
print(html_doc)
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
03.01.2021, 11:32  [ТС]
взлёт подтверждаю:
HTML5
1
2
3
<div>
<p>11</p>
</div>
СПАСИБО, неожиданно что с тегами, а как подправить, чтобы их не было, то что можно потом рубаночком пройтись я понимаю, может уже в чтении можно?
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
03.01.2021, 11:35
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
как подправить, чтобы их не было
Python
1
2
3
4
5
6
7
from pyth.plugins.rtf15.reader import Rtf15Reader
from pyth.plugins.plaintext.writer import PlaintextWriter
 
 
doc = Rtf15Reader.read(open('11.rtf', 'rb'))
text = PlaintextWriter.write(doc).read()
print(text)
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
03.01.2021, 11:56  [ТС]
ок, финиш, выложу его, вдруг кому пригодится
Python
1
2
3
4
5
6
7
8
9
10
11
12
from pyth.plugins.rtf15.reader import Rtf15Reader
from pyth.plugins.xhtml.writer import XHTMLWriter
from pyth.plugins.plaintext.writer import PlaintextWriter
 
doc = Rtf15Reader.read(open('d:/11.rtf', 'rb'))
html_doc = XHTMLWriter.write(doc, pretty=True).read().decode('utf-8')
print(html_doc)
 
print()
doc = Rtf15Reader.read(open('d:/11.rtf', 'rb'))
text = PlaintextWriter.write(doc).read()
print(text)
то что связано с нижесказанным жесть:
Цитата Сообщение от 0x10 Посмотреть сообщение
Резюме такое. Есть два окружения, с которыми может быть запущен интерпретатор. Одно — дефолтное (в данном случае уровня пользователя), второе — виртуальное (в данном случае уровня проекта), созданное ide при создании проекта. Нужно следить, какое окружение используется при запуске скрипта и куда ставятся пакеты. В данном случае пакет ставился на уровень пользователя, а используется интерпретатор уровня проекта.
ну или надо быть в теме......
огромное спасибо
ну и ложка дёгтя
в файле поместил текст:
11 обычный текст текст в нижнем-подстрочном индексе-начертании текст в верхнем-надстрочном индексе-начертании
файл приложил
ошибка:
Traceback (most recent call last):
File "C:\pythonProject\main.py", line 44, in <module>
doc = Rtf15Reader.read(open('d:/11.rtf', 'rb'))
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 94, in read
return reader.go()
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 117, in go
self.parse()
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 154, in parse
self.group.handle(control, digits)
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 434, in handle
handler()
TypeError: handle_super() missing 1 required positional argument: 'amount'
Вложения
Тип файла: 7z 11.7z (7.0 Кб, 6 просмотров)
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
03.01.2021, 13:42
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
ну и ложка дёгтя
Выглядит как баг библиотеки. У \super не должно быть аргумента, а библиотека почему-то его ожидает. По коду видно, что парные sub/dn отличаются наличием аргумента, а парные super/up — нет.
Python
1
2
3
4
5
6
7
8
9
10
11
    def handle_up(self, amount):
        self.content.append(ReadableMarker("super", True))
 
    def handle_super(self, amount):
        self.content.append(ReadableMarker("super", True))
 
    def handle_dn(self, amount):
        self.content.append(ReadableMarker("sub", True))
 
    def handle_sub(self):
        self.content.append(ReadableMarker("sub", True))
Можно исправить самостоятельно или зарепортить баг.

Если нужно просто сконвертировать rtf в текст, может подойти модуль https://pypi.org/project/striprtf/
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
03.01.2021, 14:03  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
зарепортить баг
это обратится к разробу Rtf15Reader?
о это гитхаб-там я никого не знаю))

Добавлено через 12 минут
Цитата Сообщение от 0x10 Посмотреть сообщение
Если нужно просто сконвертировать rtf в текст, может подойти модуль https://pypi.org/project/striprtf/
так там же
Python
1
2
3
4
from striprtf.striprtf import rtf_to_text
rtf = "some rtf encoded string"
text = rtf_to_text(rtf)
print(text)
требуется в переменную rtf = некоторая закодированная строка rtf
которую не открыв файла не получить...
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
03.01.2021, 14:38
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
требуется в переменную rtf = некоторая закодированная строка rtf
которую не открыв файла не получить...
И в чем проблема открыть и прочитать файл?
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
03.01.2021, 15:17  [ТС]
не правильно ранее проинформировал:
с чтением текста в нижнем-подстрочном индексе-начертании справился - <span style="vertical-align: sub; font-size: smaller">текст в нижнем-подстрочном индексе-начертании</span>

с чтением текста в верхнем-надстрочном индексе-начертании НЕ справился

Цитата Сообщение от 0x10 Посмотреть сообщение
И в чем проблема открыть и прочитать файл?
так ошибка же валится:
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
ошибка:
Traceback (most recent call last):
File "C:\pythonProject\main.py", line 44, in <module>
doc = Rtf15Reader.read(open('d:/11.rtf', 'rb'))
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 94, in read
return reader.go()
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 117, in go
self.parse()
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 154, in parse
self.group.handle(control, digits)
File "C:\pythonProject\venv\lib\site-packages\pyth\plugins\rtf15\reader.py", line 434, in handle
handler()
TypeError: handle_super() missing 1 required positional argument: 'amount'
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
03.01.2021, 15:21
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
так ошибка же валится
Поэтому я и предлагаю использовать другой модуль, если его будет достаточно.
Python
1
2
3
4
5
6
from pathlib import Path
from striprtf.striprtf import rtf_to_text
 
content = Path('11.rtf').read_text()
text = rtf_to_text(content)
print(text)
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
03.01.2021, 15:53  [ТС]
C:\Users\q8902\AppData\Local\Programs\Py thon\Python39\Scripts\pip install striprtf
Collecting striprtf
Downloading striprtf-0.0.12-py3-none-any.whl (6.1 kB)
Installing collected packages: striprtf
Successfully installed striprtf-0.0.12

ошибка
Traceback (most recent call last):
File "C:\pythonProject\main.py", line 42, in <module>
from striprtf.striprtf import rtf_to_text
ModuleNotFoundError: No module named 'striprtf'

опять смотрю на магию
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
Резюме такое. Есть два окружения, с которыми может быть запущен интерпретатор. Одно — дефолтное (в данном случае уровня пользователя), второе — виртуальное (в данном случае уровня проекта), созданное ide при создании проекта. Нужно следить, какое окружение используется при запуске скрипта и куда ставятся пакеты. В данном случае пакет ставился на уровень пользователя, а используется интерпретатор уровня проекта.
не осознанно но делаю-мышечная память
файл настройки выделил striprtf галочку у инсталла поставил, нажал инсталл
увидел сообщение pachage installed successfull - пакет успешно установлен
но ошибка No module named 'striprtf' - как приклеенная
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
03.01.2021, 16:06
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
опять смотрю на магию
В настройках проекта выбрать интерпретатор из venv и поставить пакет в него.
1
1713 / 580 / 76
Регистрация: 10.04.2009
Сообщений: 9,335
03.01.2021, 16:30  [ТС]
тогда для себя чуть понятней напишу
В настройках проекта выбрать интерпретатор где есть "\venv" и поставить пакет в него пользуясь pip
под шумок поставил двух персонажей Petrovich and pytrovich)) - 100 лет им жизни))
взлетело, спасибо
но с ложкой дёгтя-кракозябрами
11 îáû÷íûé òåêñò 11îîîîîøø îáû÷íûïïïïïïïé òåêñò â íèæíåì-ïîäñòðî÷íîì èíäåêñå-íà÷åðòàíèè
модификация строки в таком виде не помогла
Python
1
content = Path(файл).read_text().decode('utf-8')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.01.2021, 16:30

Как прочитать файл с расширением .tmp?
Есть большой файл с расширением .tmp, лишь он при условии своей целостности, должно быть, хранит содержимое некой презентации. Можно ли его...

Power Point не удается прочитать файл с расширением .tmp
Подскажите, если Вы не заняты и не против. Записывал на диск «с» видео рабочего стола в Power Point. Было уведомление о нехватке места на...

Как можно прочитать и изменить файл doc или rtf или exel на Perl под Linux
Как можно прочитать и изменить файл doc или rtf или exel на Perl под Linux пробувал искать какето модули не могу найти проблема в...

Открыть, прочитать, изменить файл со "своим" расширением
Как можно открыть файл, допустим файл &quot;test.dat&quot;, вывести его значение в лейбл, изменить его и сохранить? Сильнее всего интересует как...

Не удается прочитать поврежденный rtf
Собирал заметки по крупицам после последнего добавления комп вырубился, теперь не могу открыть фаил пишет что поврежден. Пробовал разные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru