繁体   English   中英

python子进程打开excel文件

[英]python subprocess to open excel file

目标是使用 python shell 子进程打开特定的 excel 文件。 代码再简单不过了,但我不知道出了什么问题:

import subprocess
arg1 = "C:\\Program Files (x86)\\Microsoft Office\\root\\Office16\\EXCEL.EXE"
arg2 = "C:\\Users\\user\\Documents\\test.xlsm"
p = subprocess.Popen(["start", arg1, arg2], shell=False)

该命令直接在 shell 上完美运行,但是通过子进程完成时会引发以下错误: FileNotFoundError: [WinError 2] The system cannot find the file specified

我还尝试了以下方法,它直接在 shell 上同样有效,但行为不同: p = subprocess.Popen([arg1, arg2], shell=False)

从 Excel 弹出以下失败的断言: snapshopt error

我的下一次尝试是:

import os
os.system("C:\\Users\\user\\Documents\\test.xlsm")

它复制了与上述相同的断言错误,并返回基于系统错误代码 (0-499)的代码 3 是找不到路径。

同样的路径同样适用于 shell,在这个阶段我没有想法了,有什么帮助吗?

os.startfile实际上是一种更好的方法。 如文档中所述 -

os.startfile(路径[,操作])

启动一个文件及其关联的应用程序。

当操作未指定或“打开”时,这就像在 Windows 资源管理器中双击文件,或者将文件名作为交互式命令 shell 中的启动命令的参数:使用任何应用程序打开文件(如果有) 它的扩展是关联的。

当给出另一个操作时,它必须是一个“命令动词”,指定应该对文件执行什么操作。 Microsoft 记录的常见动词是“打印”和“编辑”(用于文件)以及“探索”和“查找”(用于目录)

您可以执行以下操作 -

import os

os.startfile("C:\\Users\\user\\Documents\\test.xlsm")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM