我正在创建一个Python脚本,它执行大量任务,其中一个任务是启动并打开Excel实例。在我的剧本中实现这一目标的理想方式是什么?
答案 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)
子进程模块打算替换其他几个较旧的模块和函数,例如:
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")
可以像从网络上打开文件一样打开它,并且您必须启用编辑功能。