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

Ray*_*ega 12 python scripting ipc

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

Ali*_*har 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
Run Code Online (Sandbox Code Playgroud)

来自邮件列表帖子,但周围有很多例子.


war*_*ren 8

要么

os.system("start excel.exe <path/to/file>")
Run Code Online (Sandbox Code Playgroud)

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

而且在Windows上,也可以start <filename>工作 - 如果它已经是一个相关的扩展(如xls那样)

  • 请注意,在Windows上,如果你是os.system()`,你会看到cmd窗口快速打开和关闭.恕我直言,最好使用`os.startfile()`. (3认同)

crf*_*ftr 7

我喜欢popen2来监控这个过程.

excelProcess = popen2.Popen4("start excel %s" % (excelFile))
status = excelProcess.wait()
Run Code Online (Sandbox Code Playgroud)

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

编辑:请注意,调用wait()将阻塞,直到进程返回.根据您的脚本,这可能不是您想要的行为.


Oli*_*Oli 7

模块打算更换其他几个,旧的模块和功能,如:

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

.

import subprocess

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

print process_one.pid
Run Code Online (Sandbox Code Playgroud)