it-swarm.com.ru

Как я могу запустить экземпляр приложения, используя Python?

Я создаю сценарий Python, где он выполняет несколько задач, и одна из этих задач - запустить и открыть экземпляр Excel. Каков идеальный способ добиться этого в моем сценарии?

12
Ray Vega

Хотя ответы 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

Взято из сообщение из списка рассылки , но вокруг множество примеров.

10
Ali Afshar

или же

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

(предполагая, что он на пути, а вы на окнах)

а также в Windows, работает только start <filename> - если это уже связанное расширение (как xls)

8
warren

Мне нравится 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 () будет заблокирован до тех пор, пока процесс не вернется. В зависимости от вашего сценария это может не соответствовать вашему желанию.

7
crftr

Модуль подпроцесс предназначен для замены нескольких других, более старых модулей и функций, таких как:

  • os.system
  • os.spawn *
  • os.popen *
  • popen2. *
  • команды. *

,.

import subprocess

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

print process_one.pid
7
Oli

Как уже говорили другие, я бы предложил os.system. Если кто-то ищет Mac-совместимое решение, вот пример:

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

Мне нравится os.startfile("path to file"), поскольку он открывает файл, как будто вы дважды щелкнули, чтобы открыть.

Я обнаружил, что с os.system("start Excel filename") он открылся, как файл, открытый из Интернета, и вам пришлось включить редактирование.

0
microbenny

os.system ("открыть файл.xls")

0
Marko