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

<p>я создаю сценарий python, где он выполняет несколько задач, и одна из этих задач - запустить и открыть экземпляр excel. каков идеальный способ добиться этого в моем сценарии?</p>

<p>хотя ответы <code>popen</code> приемлемы для общего случая, я бы порекомендовал <code>win32api</code> для этого конкретного случая, если вы хотите сделать что-то полезное с ним:</p><p>это выглядит примерно так:</p><pre><code>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 </code></pre><p>взято из <a href="https://mail.python.org/pipermail/python-list/2005-june/315330.html">сообщение из списка рассылки</a> , но вокруг множество примеров.</p>

<p>или же</p><pre><code>os.system("start excel.exe <path/to/file>") </code></pre><p>(предполагая, что он на пути, а вы на окнах)</p><p>а также в windows, работает только <code>start <filename></code> - если это уже связанное расширение (как xls)</p>

<p>мне нравится popen2 за возможность следить за процессом.</p><pre><code>excelprocess = popen2.popen4("start excel %s" % (excelfile)) status = excelprocess.wait() </code></pre><p> <a href="http://www.python.org/doc/2.5.2/lib/module-popen2.html">http://www.python.org/doc/2.5.2/lib/module-popen2.html</a> </p><p><strong>edit</strong>: имейте в виду, что вызов wait () будет заблокирован до тех пор, пока процесс не вернется. в зависимости от вашего сценария это может не соответствовать вашему желанию.</p>

<p>модуль <strong>подпроцесс</strong> предназначен для замены нескольких других, более старых модулей и функций, таких как:</p><ul> <li>os.system</li> <li>os.spawn *</li> <li>os.popen *</li> <li>popen2. *</li> <li>команды. *</li> </ul><p>,.</p><pre><code>import subprocess process\_one = subprocess.popen(['gqview', '/home/toto/my\_images']) print process\_one.pid </code></pre>

<p>как уже говорили другие, я бы предложил os.system. если кто-то ищет mac-совместимое решение, вот пример:</p><pre><code>import os os.system("open /applications/safari.app") </code></pre>

<p>мне нравится <code>os.startfile("path to file")</code>, поскольку он открывает файл, как будто вы дважды щелкнули, чтобы открыть.</p><p>я обнаружил, что с <code>os.system("start excel filename")</code> он открылся, как файл, открытый из интернета, и вам пришлось включить редактирование.</p>

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