web-dev-qa-db-ja.com

Pythonを使用してアプリケーションのインスタンスを起動するにはどうすればよいですか?

私はPythonスクリプトを作成しています。このスクリプトは一連のタスクを実行し、それらのタスクの1つは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

subprocessモジュールは、次のような他のいくつかの古いモジュールおよび関数を置き換えることを目的としています。

  • 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")を使用すると、Webから開いたファイルのように開き、編集を有効にする必要があることがわかりました。

0
microbenny

os.system( "open file.xls")

0
Marko