如何使用Python启动应用程序实例?

时间:2008-10-29 17:40:12

标签: python scripting ipc

我正在创建一个Python脚本,它执行大量任务,其中一个任务是启动并打开Excel实例。在我的剧本中实现这一目标的理想方式是什么?

7 个答案:

答案 0 :(得分: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,但周围有很多例子。

答案 1 :(得分:8)

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

(假设它在路径中,而你在窗户上)

并且在Windows上,只有start <filename>也有效 - 如果它已经是一个关联的扩展(如xls那样)

答案 2 :(得分: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()将会阻塞,直到进程返回。根据您的脚本,这可能不是您想要的行为。

答案 3 :(得分:7)

子进程模块打算替换其他几个较旧的模块和函数,例如:

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

import subprocess

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

print process_one.pid

答案 4 :(得分:2)

正如其他人所说,我建议使用os.system。如果有人正在寻找与Mac兼容的解决方案,这里有一个例子:

import os
os.system("open /Applications/Safari.app")

答案 5 :(得分:0)

os.system(“open file.xls”)

答案 6 :(得分:0)

我喜欢os.startfile("path to file"),因为它可以打开文件,就像您双击打开文件一样。

我发现使用os.system("start excel filename")可以像从网络上打开文件一样打开它,并且您必须启用编辑功能。