[英]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.