Python 更改用 startfile 打开的 exe 的工作目录

1 投票
1 回答
3608 浏览
提问于 2025-04-16 20:20

在Python中,我使用os.startfile命令来启动一个Windows可执行文件,这个文件需要在它自己的文件夹里运行,而我的Python代码是在另一个文件夹中运行的。所以当我启动这个文件时,它是在Python脚本的工作目录下启动的,但它应该在自己的目录下启动。我尝试使用os.chdir(path)来改变工作目录,但没有成功,文件还是没有在它自己的文件夹里运行。我想,也许有个命令类似于快捷方式的“起始于”那一行。我到处搜索,但没有找到解决办法。唯一想到的解决方案就是创建一个快捷方式,并添加“起始于”那一行,然后启动这个快捷方式,但这样做非常不方便。

1 个回答

4

首先,不要使用 os.startfile。建议使用 subprocess,这样你可以使用 Popencwd 参数。

import subprocess
process = subprocess.Popen('command', cwd = 'directory')

如果你真的想使用 ShellExecute,那么最好的方法是跳过 os.startfile,直接用 ctypes 调用它(或者看看它是否在 pywin32 的某个地方)。

撰写回答