用于打开Excel文件的python子进程

问题描述 投票:1回答:1

目标是使用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)

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

我也尝试了下面的方法,它可以直接在外壳上正常工作,但是行为不同:p = subprocess.Popen([arg1, arg2], shell=False)

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

我的下一个尝试是:

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

复制与上面相同的断言错误,并返回基于以下内容的代码3System Error Codes (0-499)找不到路径。

在shell上也使用相同的路径,在这个阶段我用尽了主意,没有任何帮助吗?

python excel subprocess
1个回答
0
投票

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

os.startfile(path [,operation])

使用相关的应用程序启动文件。

未指定操作或“打开”时,其行为类似于 在Windows资源管理器中双击该文件,或指定文件名 作为交互式命令中start命令的参数 shell:使用任何应用程序(如果有)打开文件 扩展名已关联。

[当进行其他操作时,它必须是“命令动词” 指定应对文件进行的操作。常用动词记录 由Microsoft进行“打印”和“编辑”(用于文件)以及 “探索”和“查找”(用于目录)

您可以执行以下操作-

import os

os.startfile("C:\\Users\\user\\Documents\\test.xlsm")
© www.soinside.com 2019 - 2024. All rights reserved.