Como posso iniciar uma instância de um aplicativo usando Python?
Pergunta
Estou criando um script Python, onde ele faz um monte de tarefas e uma dessas tarefas é lançar e abrir uma instância do Excel. Qual é a maneira ideal de realizar isso no meu script?
Solução
Enquanto as respostas Popen
são razoáveis ??para o caso geral, eu recomendaria win32api
para este caso específico, se você quer fazer algo útil com ele:
É algo como isto:
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
uma mailing list pós mas há uma abundância de exemplos ao redor.
Outras dicas
ou
os.system("start excel.exe <path/to/file>")
(presumindo que é no caminho, e você está no windows)
e também no Windows, apenas obras start <filename>
, também - se é uma extensão associada já (como xls seria)
Gosto popen2 para a capacidade de monitorar o processo.
excelProcess = popen2.Popen4("start excel %s" % (excelFile))
status = excelProcess.wait()
http://www.python.org/doc/ 2.5.2 / lib / module-popen2.html
Editar : estar ciente de que chamando wait () irá bloquear até que o processo retorna. Dependendo do seu roteiro, isso pode não ser o comportamento desejado.
O subprocess módulo pretende substituir vários outros, módulos e funções mais antigos, tais 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 os outros, gostaria de sugerir os.system. No caso de alguém está à procura de uma solução compatível com Mac, aqui está um exemplo:
import os
os.system("open /Applications/Safari.app")
os.system ( "file.xls aberto")
Gosto os.startfile("path to file")
como ele abre o arquivo como se você tivesse clicado duas vezes para aberto.
Descobri que com os.system("start excel filename")
abriu-lo como um arquivo aberto a partir da web e você tinha que permitir a edição.