Domanda

Sto creando uno script Python in cui esegue una serie di attività e una di queste attività è avviare e aprire un'istanza di Excel.Qual è il modo ideale per raggiungere questo obiettivo nella mia sceneggiatura?

È stato utile?

Soluzione

Mentre il Popen le risposte sono ragionevoli per il caso generale, lo consiglierei win32api per questo caso specifico, se vuoi farci qualcosa di utile:

Funziona più o meno così:

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

Preso da un post nella mailing list ma gli esempi in giro non mancano.

Altri suggerimenti

o

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

(presumendo che sia nel percorso e sei su Windows)

e anche su Windows, funziona anche start <filename>, se è già un'estensione associata (come sarebbe xls)

Mi piace popen2 per la capacità di monitorare il processo.

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

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

EDIT : tieni presente che la chiamata wait () si bloccherà fino a quando il processo non ritorna. A seconda del tuo script, questo potrebbe non essere il comportamento che desideri.

Il modulo sottoprocesso intende sostituire diversi altri moduli e funzioni precedenti, come:

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

.

import subprocess

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

print process_one.pid

Come altri hanno affermato, suggerirei os.system. Nel caso in cui qualcuno stia cercando una soluzione compatibile con Mac, ecco un esempio:

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

os.system (" apri file.xls ")

Mi piace os.startfile("path to file") poiché apre il file come se avessi fatto doppio clic per aprire.

Ho scoperto che con os.system("start excel filename") lo ha aperto come un file aperto dal Web e dovevi abilitare la modifica.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top