4

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

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

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

4

2 回答 2

5

问题是程序所在的目录没有被使用。当前工作目录是。所以你要找出你的程序在哪个目录,哪个python方便地为你准备了:

sys.path[0]

并将目录更改为它:

os.chdir(sys.path[0])

或提供要打开的文件的完整路径

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

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

于 2012-12-05T10:28:04.040 回答
1

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

import os

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

os.system('start excel.exe my_workbook.xlsx')
  1. 不要忘记在路径中使用反斜杠,并且每次都必须有两个。
  2. my_workbook.xlxs - 这里是你的文件名
  3. 该文件必须在该文件夹中:)
于 2019-09-13T16:40:14.037 回答