我需要启动excel并直接从python打开一个文件。目前我正在使用:
import os
os.system('start excel.exe file.xls')
但是我没有得到想要的结果。我想从本地目标打开一个文件(文件与程序位于同一文件夹中),但是此代码打开的是我的主(用户)目录中的同名文件,而不是我的程序目录中的文件。
我需要启动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
) 不接受,因此此处必须使用反斜杠。start
是特定于 Windows 的,因此在这里对其进行硬编码并不是什么大问题。更重要的是要注意 Windows 不允许"
在文件名中,所以这里的引用实际上会起作用(需要引用,因为路径很可能包含 Windows 上的空间),但这样引用是个坏主意一般的!
您还可以定义 python 应该运行的目录。
import os
os.chdir('C:\\my_folder\\subfolder')
os.system('start excel.exe my_workbook.xlsx')