我正在创建一个 Python 脚本,它在其中执行一系列任务,其中一项任务是启动和打开 Excel 实例。在我的脚本中实现这一目标的理想方式是什么?
Ray Vega
问问题
52067 次
7 回答
12
虽然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
取自邮件列表帖子,但周围有很多例子。
于 2008-10-29T19:22:09.823 回答
8
或者
os.system("start excel.exe <path/to/file>")
(假设它在路径中,并且您在 Windows 上)
并且在 Windows 上也可以start <filename>
正常工作 - 如果它已经是关联的扩展名(就像 xls 一样)
于 2008-10-29T17:44:31.767 回答
7
我喜欢popen2
监控过程的能力。
excelProcess = popen2.Popen4("start excel %s" % (excelFile))
status = excelProcess.wait()
https://docs.python.org/2/library/popen2.html
编辑:请注意,调用wait()
将阻塞,直到进程返回。根据您的脚本,这可能不是您想要的行为。
于 2008-10-29T17:50:13.410 回答
7
subprocess模块旨在替换其他几个较旧的模块和功能,例如:
- 操作系统
- os.spawn*
- os.popen*
- popen2.*
- 命令。*
.
import subprocess
process_one = subprocess.Popen(['gqview', '/home/toto/my_images'])
print process_one.pid
于 2008-10-30T08:27:03.530 回答
2
正如其他人所说,我建议使用 os.system。如果有人正在寻找与 Mac 兼容的解决方案,这里有一个示例:
import os
os.system("open /Applications/Safari.app")
于 2011-06-14T22:42:54.363 回答
0
os.system("打开文件.xls")
于 2008-10-29T17:41:19.573 回答
0
我喜欢os.startfile("path to file")
它打开文件,就好像你已经双击打开一样。
我发现os.system("start excel filename")
它打开它就像从网络上打开一个文件一样,你必须启用编辑。
于 2019-01-08T21:34:31.463 回答