2010-10-21 5 views
2

J'ai une application python qui a besoin de lire un document Word. est-il une option pour luanch un document Word avec le mode de lecture seulement de Python?Ouverture d'un document Word avec mode lecture en utilisant python

+0

@Matt - OP veut lancer Word en mode lecture seule. S'il existe une option pour lancer Word en mode lecture seule à partir de la ligne de commande, il est également possible de le faire depuis Python. – eumiro

+0

@eumiro - oh! Ce n'était pas du tout clair pour moi, mais cela semble raisonnable ... –

Répondre

4

Vous trouverez quelques très échantillons utiles sur la page suivante:

Python for Windows: Microsoft Office

Ouverture d'un document Word en lecture seule can be achieved comme celui-ci, False comme troisième paramètre à Application.Documents.Open dit Word pour ouvrir le document en lecture seule.

import win32com.client, pythoncom, time 

def word(wordfile): 
    pythoncom.CoInitializeEx(pythoncom.COINIT_APARTMENTTHREADED) 
    myWord = win32com.client.DispatchEx('Word.Application') 
    myDoc = myWord.Documents.Open(wordfile, False, False, False) 

    ... 

    myDoc.Close() 
    myWord.Quit() 
    del myDoc 
    del myWord 
    pythoncom.CoUninitialize() 
+0

Cela aide vraiment, mais savez-vous pourquoi cela ne fonctionne que du deuxième appel au mot de fonction? – AKM

+0

@AKM: Que se passe-t-il la première fois? –

+0

Il ne fait rien, mais je vois une application Winword en cours d'exécution sur la tâche Gestionnaire – AKM

2

Vous pouvez toujours tirer le msword de la ligne de commande via la commande (Vérifiez le chemin)

C:\Program Files\Microsoft Office\Office\Winword.exe /f <filename> 

Je suppose que vous voulez lancer msword et ne pas lire mot docs programme. Pour pouvoir faire cela à partir de python, vous devez utiliser la fonction pour exécuter des commandes externes.

voir: http://docs.python.org/library/os.html#os.system

import os 
os.system(command) 

ou:

import os 
import subprocess 
subprocess.call(command) 

Voir les différentes options de ligne de commande à:

+0

cela aide vraiment mais winword.exe est fondé sous officexx cela signifie que mon application python ne fonctionnera pas sous un officexx différent de celui de oficeYY qui se trouve sur mon pc – AKM

+0

@AKM: winword.exe est généralement sur le chemin alors essayez simplement d'utiliser winword .exe sans le chemin. – pyfunc

0

Je suis d'accord avec @pyfunc. Juste une petite suggestion. Lorsque vous avez des espaces dans les chemins, parfois cela ne fonctionne pas. Donc, vous devez le mentionner comme ceci:

C:\"Program Files (x86)"\"Microsoft Office 2013"\Office15\WINWORD.exe D:\inchowar\Desktop\Junk.docx 
Questions connexes