Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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") он открывается как файл, открытый из Интернета, и вам нужно было разрешить редактирование.