【问题标题】:Opening excel file with tkfiledialog使用 tkfiledialog 打开 excel 文件
【发布时间】:2017-12-04 15:58:00
【问题描述】:

我只有很少的代码可以在 Excel 电子表格中打开文件

filename = filedialog.askopenfilename(initialdir="C:/", title="select file",
                                          filetypes=(("excel files", "*.xls"), ("all files", "*.*")))

os.system(r"excel.exe" + filename)

当我选择要读取的文件时,我收到以下错误:

excel.exeC:' 未被识别为内部或外部命令, 可运行的程序或批处理文件。

我尝试使用带有os.system(r"notepad.exe" + filename) 的记事本打开它,但我想使用 excel 在 excel 中打开它。 我欢迎您提出用 excel 文件打开它的建议。

【问题讨论】:

  • 不应该只打开文件,在机器默认程序中打开文件?
  • 另外 - 尝试用你的 os.system 函数替换它:subprocess.Popen(["excel.exe", fileName])
  • @Goralight 它尝试了它没有打开的子进程。
  • os.system(r"excel.exe"+filename") 会产生类似os.system(r"excel.exec:/some/file.xls") 的结果,这几乎就是错误消息告诉您的内容。
  • 如何在您的os.system(r"excel.exe" + filename) 呼叫中的“excel.exe”之后添加一个空格...您需要这样才能让操作系统有机会了解您要询问的内容做...

标签: python tkinter


【解决方案1】:

您可以专门参考 excel .exe 文件,但是,您需要使用完整位置,这可能因机器而异,具体取决于操作系统、是否进行了自定义安装等。

相反,您可以简单地引用文件本身,操作系统应该在计算机的默认程序中针对文件类型启动文件:

from tkinter import filedialog
import os

filename = filedialog.askopenfilename(initialdir="C:/", title="select file")

os.system(filename)

此外,您收到该错误的原因是当您调用 os.system(r"excel.exe" + filename) 时,您调用的 excel.exe[filename] 没有空格字符。

这意味着,如果您尝试打开 C:/excel.xls,那么您将调用 excel.exeC:/excel.xls,这不是一个有效的命令。

【讨论】:

  • 试过了,但是我在pycharm工作目录中的excel文件打不开
  • C:/Users/boy/PycharmProjects/REAL' 不是内部或外部命令、可运行程序或批处理文件。
  • 那是因为您正在调用 `C:/Users/boy/PycharmProjects/REAL`,这似乎是一个目录或命令,而不是 .xls 文件。如果你按原样运行,我上面给出的示例将起作用。
  • 我将文件复制到我的驱动器 C:它甚至没有显示为打开
  • 您是否将我的示例复制并粘贴到 Python 中并运行它?如果是这样,您是否收到错误?如果您确实收到错误,请告诉我们它是什么。我刚刚给你一个答案,我已经在我的系统上工作,我已经告诉你了,所以你能确认它是否适合你吗?
猜你喜欢
  • 2016-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-29
  • 2016-12-19
  • 2016-04-17
  • 2015-02-28
  • 2018-04-01
相关资源
最近更新 更多