Python pptx - 根据条件停止阅读幻灯片
Python pptx - stop reading slide based on conditions
我希望阅读一堆具有相同功能的幻灯片的内容。我需要的信息在前 2 张幻灯片或前 3 张幻灯片上。但我不知道哪些有 2 个有用的幻灯片,哪些有 3 个,对我的情况来说什么是好的停止条件?
我想利用紧随其后的页面的某些功能来跳出循环,但我不知道 pptx 是如何读取文件的 -- 它会先读取文本框吗?它会先读表吗?对于表格等,它是否从上到下从左到右阅读?
有什么想法或建议吗?
一张幻灯片包含 形状,其中某些类型可以包含文本。幻灯片上的形状在 slide.shapes
中并以 z 顺序 出现,这意味着最底部的形状首先出现,随后的每个形状都“叠加在该形状的顶部” .如果形状不重叠,那可能没什么大不了的,但是当重叠时,下面的部分或全部形状可能会被上面的形状遮挡。
您可以使用 shape.has_text_frame
属性.
区分可以包含文本的形状和不能包含文本的形状
我会说从形状中读取您的内容,并在您获得所有内容后停止,例如:
for shape_idx, shape in enumerate(slide.shapes):
if not shape.has_text_frame:
continue
# --- ... inspect shape content ... ---
if all_content_is_collected() or shape_idx > 1:
break
您必须确定是否收集了您所关注的所有内容(通过实施 all_content_is_collected()
)。循环将在处理完 slide.shapes[2]
后中断,这是第三张幻灯片。
我希望阅读一堆具有相同功能的幻灯片的内容。我需要的信息在前 2 张幻灯片或前 3 张幻灯片上。但我不知道哪些有 2 个有用的幻灯片,哪些有 3 个,对我的情况来说什么是好的停止条件?
我想利用紧随其后的页面的某些功能来跳出循环,但我不知道 pptx 是如何读取文件的 -- 它会先读取文本框吗?它会先读表吗?对于表格等,它是否从上到下从左到右阅读?
有什么想法或建议吗?
一张幻灯片包含 形状,其中某些类型可以包含文本。幻灯片上的形状在 slide.shapes
中并以 z 顺序 出现,这意味着最底部的形状首先出现,随后的每个形状都“叠加在该形状的顶部” .如果形状不重叠,那可能没什么大不了的,但是当重叠时,下面的部分或全部形状可能会被上面的形状遮挡。
您可以使用 shape.has_text_frame
属性.
我会说从形状中读取您的内容,并在您获得所有内容后停止,例如:
for shape_idx, shape in enumerate(slide.shapes):
if not shape.has_text_frame:
continue
# --- ... inspect shape content ... ---
if all_content_is_collected() or shape_idx > 1:
break
您必须确定是否收集了您所关注的所有内容(通过实施 all_content_is_collected()
)。循环将在处理完 slide.shapes[2]
后中断,这是第三张幻灯片。