Не удается получить доступ к заголовку первой страницы (python-docx)

#python #python-docx

#python #python-docx

Вопрос:

Недавно я написал код на python для замены слова в MS Office с помощью python-docx. Код работает хорошо в течение нескольких недель. Я могу получить доступ ко всему заголовку на всей странице с помощью этого кода ниже;

 sections = doc.sections
for z in range (0, len(sections)):
    header_section = doc.sections[z]
    header = header_section.header
    header_text = header.paragraphs[0]
 

Однако несколько дней назад я обнаружил некоторую проблему. Код, похоже, не работает с первой страницей документа (но все еще работает на более поздней странице). Я пытаюсь выяснить, почему код просто перестает работать, и кажется, что это связано с другой настройкой первой страницы документа (я пытаюсь создать новый документ без другой первой страницы, и он работает просто отлично). Может ли кто-нибудь, пожалуйста, подсказать, из-за чего мой код перестает работать, чтобы я мог попытаться найти способ переписать код (любое обновление MS Office, которое может повлиять на код?). И если у вас есть какие-либо идеи, как получить доступ к заголовку в документе с другими настройками первой страницы, пожалуйста, поделитесь. Заранее благодарю.

Комментарии:

1. Ваш вопрос недостаточно квалифицирован и слишком конкретен. Недостаточно квалифицирован в предоставлении достаточного количества информации для воспроизведения проблемы и чрезмерно конкретизирован, предоставляя слишком много вопросов одновременно.

2. Возможно, вы не захотите получать доступ header.paragraphs[0] , если в нем нет элемента. Итак, вы должны сначала проверить это

3. Пожалуйста, примите мои извинения, я совсем новичок в этом сообществе.

Ответ №1:

Раздел может содержать до трех верхних и трех нижних колонтитулов. Это заголовок первой страницы, заголовок нечетной страницы и заголовок по умолчанию. Большинство разделов имеют только заголовок по умолчанию, но если определен заголовок первой страницы, он используется только для первой страницы. Это связано с тем, что, скажем, первая страница главы обычно не имеет заголовка или может иметь заголовок, отличный от заголовка «running» в остальной части главы или другого раздела.

Поэтому посмотрите, определен ли у вас заголовок первой страницы или заголовок нечетной страницы; это может объяснить поведение, которое вы видите. Смотрите Эти страницы в документации для получения дополнительной информации:
https://python-docx.readthedocs.io/en/latest/api/section.html#id1
https://python-docx.readthedocs.io/en/latest/user/hdrftr.html

Комментарии:

1. Спасибо, сэр. Теперь я могу получить доступ к заголовку первой страницы. 🙂

2. @YootthachaiK добро пожаловать в StackOverflow. Не забудьте принять ответ на свой вопрос, нажав на галочку слева от ответа. Это подтверждает, что респондент потратил время на написание ответа, а также создает вашу собственную репутацию.

3. Я нажал кнопку «Принять», но, похоже, я просто новичок в stackoverflow, поэтому они просто записывают принятие, но не отображаются на отметке.