Я создаю Python script, где он выполняет множество задач, и одна из этих задач - запустить и открыть экземпляр Excel. Каков идеальный способ выполнения этого в моем script?
Как запустить экземпляр приложения с помощью Python?
Ответ 1
Хотя ответы Popen
являются разумными для общего случая, я бы рекомендовал win32api
для этого конкретного случая, если вы хотите сделать что-то полезное с ним:
Это выглядит примерно так:
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
Взято из почтовый список, но есть много примеров.
Ответ 2
или
os.system("start excel.exe <path/to/file>")
(предполагая это в пути, а вы на окнах)
а также в Windows, работает только start <filename>
- если это уже связанное расширение (в качестве xls будет)
Ответ 3
Мне нравится popen2 для возможности отслеживать процесс.
excelProcess = popen2.Popen4("start excel %s" % (excelFile))
status = excelProcess.wait()
http://www.python.org/doc/2.5.2/lib/module-popen2.html
EDIT: помните, что вызов wait() будет блокироваться до тех пор, пока процесс не вернется. В зависимости от вашего script это может быть не ваше желаемое поведение.
Ответ 4
Модуль подпроцесса намерен заменить несколько других, более старых модулей и функций, таких как:
- os.system
- os.spawn *
- os.popen *
- popen2. *
- команды. *
.
import subprocess
process_one = subprocess.Popen(['gqview', '/home/toto/my_images'])
print process_one.pid
Ответ 5
Как заявили другие, я бы предложил os.system. Если кто-то ищет решение, совместимое с Mac, вот пример:
import os
os.system("open /Applications/Safari.app")
Ответ 6
os.system( "open file.xls" )
Ответ 7
Мне нравится os.startfile("path to file")
поскольку он открывает файл, как если бы вы дважды щелкнули, чтобы открыть.
Я обнаружил, что с помощью os.system("start excel filename")
он открывается как файл, открытый из Интернета, и вам нужно было разрешить редактирование.