Pregunta

Estoy creando un script de Python donde hace un montón de tareas y una de esas tareas es la de iniciar y abrir una instancia de Excel.¿Cuál es la forma ideal de lograr que en mi script?

¿Fue útil?

Solución

Mientras que el Popen las respuestas son razonables para el caso general, yo recomendaría win32api para este caso específico, si quieres hacer algo útil con ella:

Es algo como esto:

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

Tomado de una lista de distribución de correos pero hay un montón de ejemplos alrededor.

Otros consejos

o

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

(suponiendo que esté en el camino y que esté en Windows)

y también en Windows, simplemente start <filename> también funciona, si ya es una extensión asociada (como lo sería xls)

Me gusta popen2 por la capacidad de monitorear el proceso.

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

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

EDITAR : tenga en cuenta que llamar a wait () se bloqueará hasta que regrese el proceso. Dependiendo de su secuencia de comandos, este puede no ser su comportamiento deseado.

El módulo subproceso tiene la intención de reemplazar varios otros módulos y funciones más antiguos, como:

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

.

import subprocess

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

print process_one.pid

Como han dicho otros, sugeriría os.system. En caso de que alguien esté buscando una solución compatible con Mac, aquí hay un ejemplo:

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

os.system (" abrir archivo.xls ")

Me gusta os.startfile("path to file") ya que abre el archivo como si hubiera hecho doble clic para abrirlo.

Descubrí que con os.system("start excel filename") lo abría como un archivo abierto desde la web y tenía que habilitar la edición.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top