如何显示和下载来自databricks的pptx文件?

我使用Python在数据块中使用实用程序脚本生成了一个Power Point平台。我现在想在内核中访问文件,但是由于卡片组中的图像,它显示了奇怪的符号。我该如何纠正输出卡座图像的语句?

#access file
dbutils.fs.head('file:/dbfs/user/test.pptx')

Out: 'PK\x03\x04\x14\x00\x00\x00\x08\x00D�lOƯ�g�\x01\x00\x00�\x0c\x00\x00\x13\x00\x00\x00[Content_Types].xml͗�N�0\x10��<E�K\x0e�q�\x175��rb�\x04<�I����-ϴзg�.��R�\n_\x12�3���\'Q4霼�:\x1a�GeM�l��$\x02��B�A���]�\x0e�\x08I�Bjk K&��Iw�s7q�\x11\x17\x1b��!�;\x16\x02�!
kouder 回答:如何显示和下载来自databricks的pptx文件?

  

如何显示数据砖中的pptx文件?

要使用以下代码显示数据块中的pptx文件:

from pptx import Presentation
prs = Presentation('/dbfs/myfolder/BRK4024.pptx')
for slide in prs.slides:
  for shapes in slide.shapes:
    print( shapes.shape_type )
    print( '----------------' )
    if shapes.has_text_frame:
      print( shapes.text )

笔记本示例:

enter image description here

注意:,因为 python-pptx 不支持SmartArt,因此在输出中您将看到(“ PlaceHolders”,“自选图形”,“图片”) 。您需要将内容手动插入到占位符/自选图形/图片中,这将是在python中构建的繁琐任务。

示例: Sample code - add an image in every Powerpoint slide using python-pptx

  

如何从databricks下载pptx文件?

您可以使用databricks cli如下将文件从databricks文件系统下载到本地计算机;

dbfs cp dbfs:/myfolder/BRK4024.pptx A:DataSet\

示例:由于我在dbfs上的myfolder中有一个示例BRK4024.pptx文件,因此我正在使用databricks cli命令复制到本地计算机文件夹名称(A:Dataset)

enter image description here

希望这会有所帮助。

,

只需另外回答部分问题How to display a pptx file from databricks?

当然,我看到@ CHEEKATLAPRADEEP-MSFT已回答如何使用python-pptx提取pptx文件的文本内容并显示在databricks笔记本中。

但是,如果要像在博客Converting presentation slides to HTML blog post with images中一样在数据砖笔记本中将pptx文件的整个幻灯片显示为图像,则在数据砖笔记本中是不可能的,原因如下。

  1. Databricks在Linux中运行,因此您无法通过win32 api将pptx文件转换为图像以调用MS PowerPoint应用程序。
  2. 用于将pptx转换为图像的现有解决方案需要在运行的计算机上安装LibraOffice,但恐怕您无法在Linux OS上针对云数据砖执行此操作。由于问题https://github.com/scanny/python-pptx/issues/348python-pptx无法进行转换。甚至没有Python包可以单独完成。

如果您使用的数据块是私有计算机,则可以尝试遵循SO线程How to convert pptx files to jpg or png (for each slide) on linux?https://github.com/innaky/pptx-to-images/blob/master/pptx-to-images.py中的代码来获取pptx文件的幻灯片图像,那么您可以参考转到数据块文档Use Notebooks的{​​{3}}部分以显示它们。

当然,您还可以将本地pptx文件转换后的图像上传到云数据块,然后进行显示。但是自动在云数据砖上完全完成这些操作似乎是不可能的。

本文链接:https://www.f2er.com/3114330.html

大家都在问