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

StackOverflow https://stackoverflow.com/questions/247724

  •  05-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

или

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

(при условии, что он находится в пути, а вы в Windows)

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

Мне нравится popen2 за возможность следить за процессом.

excelProcess = popen2.Popen4("start excel %s" % (excelFile))
status = excelProcess.wait()

http://www.python.org/doc/ 2.5.2 / Библиотека / модуль-popen2.html

РЕДАКТИРОВАТЬ : имейте в виду, что вызов wait () будет заблокирован до тех пор, пока процесс не вернется. В зависимости от вашего сценария это может не соответствовать вашему желанию.

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

  • ОС.система
  • ОС.spawn*
  • os.popen*
  • popen2.*
  • команды.*

.

import subprocess

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

print process_one.pid

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top