Je suis actuellement en train d'essayer de tirer du texte à partir de fichiers .ppt et .pptx. J'utilise avec succès python-pptx afin de gérer les fichiers .pptx, MAIS selon its documentation, "Les fichiers .ppt de PowerPoint 2003 et versions antérieures ne fonctionneront pas."python-pptx ".ppt" gestion de travail autour de
Lors de la création d'un élément de présentation en utilisant cette ligne de code:
`prs = Presentation("Filepath\\presentation.ppt")`
Je reçois l'erreur suivante:
`Traceback (most recent call last):
...shortened for brevity....
KeyError: "no relationship of type 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument' in collection"`
Je crois que cette erreur se produit parce que python-pptx ne peut pas gérer fichiers .ppt. J'ai essayé de remédier à cette situation de trois façons:
- Je voulais utiliser la fonction
.save()
associée à python-pptx mais je dois faire un élément de présentation à faire. Je ne peux pas faire cela parce que je devrais utiliser python-pptx qui ne peut pas gérer le fichier .ppt en premier lieu. - Faire usage de
os.rename(src, dst)
- Cela ne pas travail. Renommer le fichier ne fonctionne pas de la même manière que «enregistrer sous», ce qui rend le fichier corrompu.
J'utilisé
win32com
pour ouvrir l'application PowerPoint, ouvrez le fichier .ppt, puis enregistrez le fichier en tant que .pptx, et à proximité à la fois le fichier et l'application.- Cette méthode a fonctionné MAIS c'est vraiment "maladroit". (Voir le code ci-dessous.)
Application = win32com.client.Dispatch("PowerPoint.Application") Application.Visible = True Presentation = Application.Presentations.Open("Filepath\\presentation.ppt") Presentation.Saveas("Filepath\\presentation.pptx") Presentation.Close() Application.Quit()
Ma question à la communauté est de savoir s'il existe un moyen plus sophistiqué ou élégant pour résoudre mon dilemme. Mon dilemme étant que je veux être capable d'analyser le texte à partir de fichiers .ppt et python-pptx ne gère pas ces types de fichiers.