Estoy creando un script de Python donde realiza un conjunto de tareas y una de esas tareas es iniciar y abrir una instancia de Excel. ¿Cuál es la forma ideal de lograr eso en mi script?¿Cómo puedo iniciar una instancia de una aplicación usando Python?
Respuesta
Mientras que los Popen
respuestas son razonables para el caso general, recomendaría win32api
para este caso concreto, si usted quiere hacer algo útil con él:
Es algo parecido a 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 a mailing list post pero hay muchos ejemplos alrededor.
Si también desea ver la hoja de cálculo de Excel, debe agregar xl.Visible = True – panofish
o
os.system("start excel.exe <path/to/file>")
(suponiendo que está en el camino, y está en Windows)
y también en Windows, solo start <filename>
funciona, si ya es una extensión asociada (como xls sería)
Tenga en cuenta que en Windows verá que la ventana de cmd se abre y se cierra rápidamente si '' os.system() '. En mi humilde opinión, es mejor usar 'os.startfile()'. – 10basetom
Me gusta popen2 por la capacidad de supervisar 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 el proceso vuelve. Dependiendo de su secuencia de comandos, esta puede no ser su conducta deseada.
El subproceso módulo tiene la intención de sustituir a 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í está un ejemplo:
import os
os.system("open /Applications/Safari.app")
- 1. ¿Cómo puedo iniciar varias instancias de una aplicación usando launchd?
- 2. Cómo iniciar una aplicación Sinatra usando "correr"
- 3. ¿Cómo puedo iniciar una instancia de tarea de continuación?
- 4. ¿Cómo puedo servir una aplicación WSGI Python usando Mongrel2?
- 5. ¿Cómo puedo iniciar Safari desde una aplicación de iPhone?
- 6. ¿Cómo iniciar una aplicación desde un navegador?
- 7. Android - Cómo iniciar una nueva actividad desde una instancia
- 8. ¿Cómo puedo desinstalar una aplicación usando PowerShell?
- 9. ¿Cómo puedo acortar una URL usando Python?
- 10. ¿Puedo iniciar una aplicación desde otra aplicación en el iPhone
- 11. ¿Cómo puedo iniciar sesión en un sitio web usando Python?
- 12. Cómo iniciar automáticamente una aplicación de Android?
- 13. Cómo iniciar una instancia de postgresql para pruebas de integración
- 14. ¿Cómo puedo forzar Python (usando win32com) para crear una nueva instancia de Excel?
- 15. Cómo ejecutar solo una instancia de aplicación
- 16. Cómo iniciar una aplicación mac sin una ventana de terminal
- 17. ¿Cómo puedo iniciar una nueva actividad de Android usando una cadena?
- 18. Cómo iniciar una aplicación Sencha Touch
- 19. ¿Cómo iniciar IE7 desde una aplicación de Windows Phone?
- 20. Iniciar safari desde una aplicación Mac
- 21. Iniciar una aplicación de escritorio con una aplicación estilo Metro
- 22. ¿Cómo asigno una propiedad a una instancia en Python?
- 23. Asegurar una sola instancia de aplicación
- 24. ¿Cómo inicializar una instancia usando pickle()?
- 25. cómo crear dinámicamente una instancia de una clase en python?
- 26. ¿Cómo puedo hacer una aplicación de escritorio portátil de python?
- 27. ¿Cómo iniciar automáticamente servicios web al iniciar una instancia de Amazon EC2?
- 28. usando django, ¿cómo construyo una instancia de objeto proxy de una instancia de objeto de superclase?
- 29. ¿Cómo implementar una aplicación web python con dependencias usando virtualenv?
- 30. Cómo iniciar una aplicación de Android con valgrind
ipc - http://en.wikipedia.org/wiki/Inter-process_communication – warren