在 python 中,我使用 os.startfile 命令启动一个 Windows 可执行文件,它在自己的文件夹中执行特定的操作,python 代码从另一个文件夹运行,所以当我启动文件时,它从 python 脚本的工作目录,但它必须从自己的目录开始。我尝试使用 os.chdir(path) 更改工作目录,但失败了,该文件仍未在其自己的文件夹中运行。我想也许有一个像快捷方式的“开始于”行这样的命令。我到处搜索,但没有成功。我想到的唯一解决方案是创建快捷方式并添加“开始于”行,然后启动快捷方式,但这是非常不切实际的。
最佳答案
对于初学者,不要使用 os.startfile
。使用 subprocess
,然后您可以使用 Popen
的 cwd
参数。
import subprocess
process = subprocess.Popen('command', cwd = 'directory')
如果你真的想用ShellExecute
, 那么最好的方法是跳过 os.startfile
并直接用 ctypes
调用它(或者看看它是否在 pywin32 的某个地方)。
关于Python更改用startfile打开的exe文件的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6487544/