Pythonを使用してアプリケーションのインスタンスを起動するにはどうすればよいですか?
質問
私は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から開いたファイルのように開くため、編集を有効にする必要があることがわかりました。