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

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

21.12.2020, 20:32. Показов 10607. Ответов 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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
5438 / 3859 / 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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
5438 / 3859 / 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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,323
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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru