私は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では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
[〜#〜] edit [〜#〜]:wait()を呼び出すと、プロセスが戻るまでブロックされることに注意してください。スクリプトによっては、これが望ましい動作ではない場合があります。
subprocessモジュールは、次のような他のいくつかの古いモジュールおよび関数を置き換えることを目的としています。
。
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.startfile("path to file")
は、ダブルクリックして開いたかのようにファイルを開くので気に入っています。
os.system("start Excel filename")
を使用すると、Webから開いたファイルのように開き、編集を有効にする必要があることがわかりました。
os.system( "open file.xls")