从python打开/运行Excel文件

从python打开/运行Excel文件,python,Python,我需要启动excel并直接从python打开一个文件。目前我正在使用: import os os.system('start excel.exe file.xls') 然而,我没有得到想要的结果。我想从本地目标打开一个文件(文件与程序位于同一文件夹中),但此代码打开的是我的主(用户)目录中同名的文件,而不是我的程序目录。问题是程序所在的目录未被使用。当前工作目录为。因此,您必须找出您的程序所在的目录,以及方便地为您准备的python: sys.path[0] 并将目录更改为: os.chdi

我需要启动excel并直接从python打开一个文件。目前我正在使用:

import os
os.system('start excel.exe file.xls')

然而,我没有得到想要的结果。我想从本地目标打开一个文件(文件与程序位于同一文件夹中),但此代码打开的是我的主(用户)目录中同名的文件,而不是我的程序目录。

问题是程序所在的目录未被使用。当前工作目录为。因此,您必须找出您的程序所在的目录,以及方便地为您准备的python:

sys.path[0]
并将目录更改为:

os.chdir(sys.path[0])
或者为要打开的文件提供完整路径

os.system('start excel.exe "%s\\file.xls"' % (sys.path[0], ))

请注意,虽然Windows通常接受正斜杠作为目录分隔符,但命令shell(
cmd.exe
)不接受,因此此处必须使用反斜杠<代码>开始是特定于Windows的,因此在这里硬编码并不是什么大问题。更重要的是,Windows不允许在文件名中使用
”,因此这里的引用实际上是可行的(需要引用,因为路径很可能包含Windows上的空间),但是一般来说这样引用是不好的!

您还可以定义python应该运行的目录

import os

os.chdir('C:\\my_folder\\subfolder')

os.system('start excel.exe my_workbook.xlsx')
  • 不要忘记在路径中使用反斜杠,每次都必须有两个反斜杠
  • my_workbook.xlxs-这里是您的文件名
  • 该文件必须位于该文件夹中:)

  • 您是否尝试过
    os.curdir
    ?这不是一个好方法。您的用例是什么?@Abhijit:为什么这不是一个好方法?这是在Windows中启动应用程序的标准方法。@JanHudec:因为实现调用具有相同限制的标准C系统函数调用。而应该使用子进程。请参阅本节[替换os.system]()。另外请注意,还有其他优雅的方法,如win32com.client。如果只需要编辑excel,还有其他很棒的库,如openpyxl或xlrd/xlwtA小的:您可以将其缩短为“start file.xls”Windows将自动选择要启动的正确程序。
    start
    这是Windows特有的,但在某些linux发行版上,它也是
    initctl
    :)的包装器