2008-10-29 5 views

Répondre

10

Alors que les réponses Popen sont raisonnables pour le cas général, je recommande win32api pour ce cas précis, si vous voulez faire quelque chose d'utile:

Il va quelque chose comme ceci:

from win32com.client import Dispatch 
xl = Dispatch('Excel.Application') 
wb = xl.Workbooks.Open('C:\\Documents and Settings\\GradeBook.xls') 
xl.Visible = True # optional: if you want to see the spreadsheet 

Tiré de a mailing list post mais il y a beaucoup d'exemples autour.

+0

Si vous voulez voir la feuille de calcul Excel, vous devez ajouter xl.Visible = True – panofish

0

os.system (le "file.xls ouvert")

+0

fonctionne le "ouvert" sur la non-Mac Systèmes OS X? – mipadi

+0

Fonctionne probablement aussi sur NeXTstep. Mais certainement pas Windows ou UNIX. Étant donné que la question porte sur Excel, je suppose que OS X ou Windows. – ephemient

8

ou

os.system("start excel.exe <path/to/file>") 

(en supposant qu'il est dans le chemin, et vous êtes sur Windows)

et également sous Windows, juste start <filename> fonctionne, aussi - si c'est une extension associée déjà (comme xls serait)

+3

Notez que sous Windows vous verrez la fenêtre cmd s'ouvrir et se fermer rapidement si vous avez 'os.system()'. À mon humble avis, il est préférable d'utiliser 'os.startfile()'. – 10basetom

7

J'aime popen2 pour la capacité de surveiller le processus.

excelProcess = popen2.Popen4("start excel %s" % (excelFile)) 
status = excelProcess.wait() 

http://www.python.org/doc/2.5.2/lib/module-popen2.html

EDIT: soyez conscient que l'appel attente() bloquera jusqu'à ce que le processus revient. Selon votre script, cela peut ne pas être votre comportement souhaité.

7

Le subprocess le module est appelé à remplacer plusieurs autres, des modules et des fonctions plus anciennes, telles que:

  • os.system
  • os.spawn *
  • os.popen *
  • popen2 . *
  • commandes. *

.

import subprocess 

process_one = subprocess.Popen(['gqview', '/home/toto/my_images']) 

print process_one.pid 
1

Comme d'autres l'ont indiqué, je suggérerais os.system. Au cas où quelqu'un est à la recherche d'une solution compatible Mac, voici un exemple:

import os 
os.system("open /Applications/Safari.app") 
Questions connexes