Попытка не пытается удалить символы. Вы можете использовать метод replace
для замены символов в строке, его также можно использовать для удаления символов, просто заменив пустую строку.
Единственная проблема заключается в том, чтобы правильно представлять 0xF0B7 в исходном коде, и правильный способ зависит от того, содержит ли document.paragraphs
обычные строки или строки Unicode (я бы рекомендовал использовать python3, чтобы избежать проблем с Unicode). Я предполагаю, что они являются строками unicode, а затем вы будете представлять точку кода как «u» \ uF0B7 »(если это обычные строки, то это будет зависеть от кодировки).
Помимо этого у вашего кода возникла проблема, так как способ построения text_string
может быть неоптимальным. Другой способ построения строки из фрагментов - разместить фрагменты в списке, а затем присоединиться к ним, используя "".join(l)
.
Сведя вместе вы получите (при условии, что document.paragraphs
Юникода строки):
from docx import Document
document = Document(file_to_read)
text_string = u"\n".join([p.replace(u"\uF0B7", u"")
for p in document.paragraphs])
print(text_string)
Если вы используете python3 вы должны удалить u
сек до струн (так как в Python3 все строки Юникода). Также обратите внимание, что при print
IN вы должны убедиться, что у вас есть кодировка, которая поддерживает все символы в документе (это, возможно, было причиной того, что вы хотите удалить маркеры в первую очередь).
Какой инструмент вы используете? Openpyxl предназначен для Excel. –
Извините. Для чтения текстового файла я использую: docx. –
@ Kristof Я добавил код. –