Question

Je crée un script Python dans lequel il effectue un grand nombre de tâches. L'une de ces tâches consiste à lancer et à ouvrir une instance d'Excel. Quelle est la manière idéale d’y parvenir dans mon script?

Était-ce utile?

La solution

Bien que les Popen réponses soient raisonnables pour le cas général, je recommanderais win32api pour ce cas particulier, si vous voulez faire quelque chose d'utile avec:

Cela ressemble à 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

Extrait de une publication sur une liste de diffusion , mais il y a beaucoup d'exemples autour.

Autres conseils

ou

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

(en supposant que c'est dans le chemin et que vous êtes sur Windows)

et aussi sous Windows, start <filename> ça marche aussi - s'il s'agit déjà d'une extension associée (comme le serait xls)

J'aime popen2 pour sa capacité à 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

MODIFIER : sachez que l'appel de wait () sera bloqué jusqu'au retour du processus. Selon votre script, il se peut que ce ne soit pas votre comportement souhaité.

Le module sous-processus vise à remplacer plusieurs modules et fonctions plus anciens, tels que:

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

.

import subprocess

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

print process_one.pid

Comme d’autres l’ont dit, je suggèrerais os.system. Si vous recherchez une solution compatible Mac, voici un exemple:

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

os.system (" open file.xls ")

J'aime os.startfile("path to file") car il ouvre le fichier comme si vous aviez double-cliqué dessus pour l'ouvrir.

J'ai constaté qu'avec os.system("start excel filename") cela l'ouvrait comme un fichier ouvert à partir du Web et que vous deviez activer l'édition.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top