2008-10-29 58 views
12

我正在創建一個Python腳本,它執行一堆任務,其中一個任務是啓動並打開一個Excel實例。在我的腳本中完成這個操作的理想方式是什麼?如何使用Python啓動應用程序的實例?

+0

IPC - http://en.wikipedia.org/wiki/Inter-process_communication – warren 2008-10-29 17:53:45

回答

10

雖然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 

a mailing list post採取,但有很多的例子。

0

使用os.system( 「開放file.xls」)

+0

是否「開放式」的非Mac工作OS X系統? – mipadi 2008-10-29 17:43:29

+0

也許也適用於NeXTstep。但肯定不是Windows或UNIX。鑑於該問題詢問Excel,我會假設OS X或Windows。 – ephemient 2008-10-29 17:45:12

8

os.system("start excel.exe <path/to/file>") 

(假設它是在路徑,而你在Windows上)

,並在Windows上,只是start <filename>的作品 - 如果它已經是一個關聯的擴展(如xls會)

+3

請注意,在Windows上,如果您使用`os.system()`,您將看到cmd窗口快速打開和關閉。恕我直言,最好使用`os.startfile()`。 – 10basetom 2014-12-30 04:06:08

7

我喜歡popen2監控進程的能力。

excelProcess = popen2.Popen4("start excel %s" % (excelFile)) 
status = excelProcess.wait() 

http://www.python.org/doc/2.5.2/lib/module-popen2.html

編輯:要知道,調用wait()將阻塞,直到該處理。根據你的腳本,這可能不是你想要的行爲。

7

模塊打算更換幾個其他,舊模塊和功能,如:

  • 使用os.system
  • os.spawn *
  • os.popen *
  • popen2 。*
  • 命令。*

import subprocess 

process_one = subprocess.Popen(['gqview', '/home/toto/my_images']) 

print process_one.pid 
1

正如其他人所說,我會建議os.system。如果有人正在尋找一個Mac兼容的解決方案,這裏有一個例子:

import os 
os.system("open /Applications/Safari.app") 
相關問題