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

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

  •  05-07-2019
  •  | 
  •  

質問

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

編集:プロセスが戻るまでwait()を呼び出すとブロックされることに注意してください。スクリプトによっては、これが望ましい動作ではない場合があります。

サブプロセスモジュールは、次のような他のいくつかの古いモジュールや機能を置き換えることを意図しています:

  • os.system
  • os.spawn *
  • os.popen *
  • popen2。*
  • commands。*

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(<!> quot; open file.xls <!> quot;)

ダブルクリックして開くようにファイルを開くos.startfile("path to file")が好きです。

os.system("start excel filename")を使用すると、Webから開いたファイルのように開くため、編集を有効にする必要があることがわかりました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top