python - 打开 excel 文件 python 所以它是可见的

标签 python python-3.x subprocess

我正在尝试打开一个 excel 以使其显示可见。

我正在使用:

import subprocess
subprocess.check_call(['open', '-a', 'C:\\1\\2\\22.xlsx'])

https://ibb.co/eOhY4b

抱歉,如果这很明显,但我一直收到此错误消息。据我所知,该文件位于此处。

FileNotFoundError: [WinError 2] The system cannot find the file specified

最佳答案

它没有工作只是因为 open 不是一个已知的命令名称(这是 Windows 注册表中的一个操作,仅此而已)。 subprocess 错误信息:

FileNotFoundError: [WinError 2] The system cannot find the file specified

只有一个意思:找不到可执行文件。它不会(也不能)检查参数以查看它们是否是有效的文件路径,所以不要朝那个方向看(是的,遗憾的是该消息是通用的并且没有确切说明哪个文件不能是发现,一个已知的 Windows 问题)

那行得通:

import os
os.startfile(r'C:\1\2\22.xlsx')

os.startfile尝试执行与您在 Windows 资源管理器中单击文件时相同的操作。

此解决方案的优点是不依赖于 win32com

旁白/评论中讨论:os.path.join('C:', '1', '2', '22.xlsx') 不起作用,因为它不在驱动器冒号后添加反斜杠(并且出于“好的”原因(在 Windows 方面是一个很好的理由):Python os.path.join on Windows)。

>>> os.path.join('C:', '1', '2', '22.xlsx')
'C:1\\2\\22.xlsx'  # wrong

一种简洁的方式:

>>> os.path.join('C:', os.sep,'1' , '2', '22.xlsx')
'C:\\1\\2\\22.xlsx'

关于python - 打开 excel 文件 python 所以它是可见的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47673734/

相关文章:

python - 显示完整的行,突出显示数据帧 df1 、 df2 之间的差异,但仅当行单元格中存在差异时

Python Dict inside List inside Dict - 可以理解吗?

python - 在 OSX 10.10 上链接 Boost Python

python - 在Python中按特定值对JSON进行排序

python - Seaborn 热图 : Customize A Label

python - 如何在 aws lambda/tmp 目录中运行 python 脚本

python - 获取最新修改的文​​件并作为输入传递给子流程

Python subprocess.check_output 输出与同一命令的 bash 输出不同

python - TF Gradient Tape 有跨积问题?

python-3.x - ldap3 python 将用户添加到组