Python 如何从DataRicks显示和下载pptx文件?

Python 如何从DataRicks显示和下载pptx文件?,python,windows,powerpoint,databricks,Python,Windows,Powerpoint,Databricks,我使用Python在databricks中生成了一个带有实用程序脚本的power point deck。我现在想访问内核中的文件,但由于甲板中的图像,它显示了奇怪的符号。如何更正此输出甲板图像的语句 #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[C

我使用Python在databricks中生成了一个带有实用程序脚本的power point deck。我现在想访问内核中的文件,但由于甲板中的图像,它显示了奇怪的符号。如何更正此输出甲板图像的语句

#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�!
#访问文件
dbutils.fs.head('文件:/dbfs/user/test.pptx')
输出:“PK\x03\x04\x14\x00\x00\x00\x08\x00D�罗Ư�G�\x01\x00\x00�\x0c\x00\x00\x13\x00\x00\x00[内容类型].xml�N�0\x10��
如何从Datatricks显示pptx文件

要使用以下代码显示来自Datatricks的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 )
笔记本示例:

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

示例:

如何从Datatricks下载pptx文件

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

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

希望这有帮助

如何从Datatricks显示pptx文件

要使用以下代码显示来自Datatricks的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 )
笔记本示例:

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

示例:

如何从Datatricks下载pptx文件

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

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


希望这有帮助。

只需另外回答部分问题
如何从Datatricks显示pptx文件?

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

但是,如果您想像博客一样在databricks笔记本中以图像的形式显示pptx文件的整个幻灯片,那么在databricks笔记本中是不可能的,原因如下

  • Databricks在Linux中运行,因此您无法通过调用MS PowerPoint应用程序的
    win32
    api将pptx文件转换为图像
  • 将pptx转换为图像的现有解决方案需要在正在运行的计算机中安装
    LibraOffice
    ,但恐怕您无法在Linux操作系统上为云数据库磁盘安装该解决方案。由于该问题,
    python-pptx
    无法进行转换。即使没有任何Python包可以单独完成这项工作
  • 如果您使用的数据块是一台专用计算机,您可以尝试按照SO线程或中的代码获取pptx文件幻灯片的图像,然后您可以参考数据块文档的一节使用笔记本来显示它们


    当然,您也可以将从本地的pptx文件转换的图像上传到云数据库,然后显示它们。但是完全在云数据库上自动执行这些操作似乎是不可能的。

    只需另外回答部分问题
    如何从数据库显示pptx文件?

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

    但是,如果您想像博客一样在databricks笔记本中以图像的形式显示pptx文件的整个幻灯片,那么在databricks笔记本中是不可能的,原因如下

  • Databricks在Linux中运行,因此您无法通过调用MS PowerPoint应用程序的
    win32
    api将pptx文件转换为图像
  • 将pptx转换为图像的现有解决方案需要在正在运行的计算机中安装
    LibraOffice
    ,但恐怕您无法在Linux操作系统上为云数据库磁盘安装该解决方案。由于该问题,
    python-pptx
    无法进行转换。即使没有任何Python包可以单独完成这项工作
  • 如果您使用的数据块是一台专用计算机,您可以尝试按照SO线程或中的代码获取pptx文件幻灯片的图像,然后您可以参考数据块文档的一节使用笔记本来显示它们

    当然,您也可以将从本地的pptx文件转换的图像上传到云数据库,然后显示它们。但完全在云数据库上自动完成这些任务似乎是不可能的