Frage

Ich erstelle einen Python-Skript, wo es eine Reihe von Aufgaben tut und eine dieser Aufgaben zu starten und eine Instanz von Excel zu öffnen. Was ist die ideale Art und Weise, dass in meinem Skript zu bewerkstelligen?

War es hilfreich?

Lösung

Während die Popen Antworten angemessen für den allgemeinen Fall, würde ich win32api für diesen speziellen Fall empfehlen, wenn Sie etwas Nützliches damit zu tun:

Es geht in etwa so:

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

Genommen von einer Mailing-Liste Post aber viele Beispiele gibt es rund.

Andere Tipps

oder

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

(vorausgesetzt, es ist auf dem Weg, und du bist auf dem Fenster)

und auch auf Windows, nur start <filename> funktioniert, auch - wenn es eine bereits zugeordnete Verlängerung (als xls wäre)

Ich mag popen2 für die Fähigkeit, den Prozess zu überwachen.

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

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

Bearbeiten : beachten Sie, dass Warte () aufrufen, bis der Prozess kehrt blockiert. Je nach Ihrem Skript, kann dies das gewünschte Verhalten nicht sein.

Der subprocess Modul beabsichtigt mehrere andere, ältere Module und Funktionen, wie zum Beispiel zu ersetzen:

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

.

import subprocess

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

print process_one.pid

Wie schon andere gesagt haben, würde ich vorschlagen, os.system. Falls jemand für eine Mac-kompatible Lösung sucht, ist hier ein Beispiel:

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

os.system ( "open file.xls")

Ich mag os.startfile("path to file") wie es die Datei öffnet, als ob Sie doppelt geklickt hat, zu öffnen.

Ich fand, dass mit os.system("start excel filename") es öffnete sie wie eine Datei aus dem Internet geöffnet und man mußte die Bearbeitung ermöglichen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top