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

标签 python windows operating-system executable working-directory

在 python 中,我使用 os.startfile 命令启动一个 Windows 可执行文件,它在自己的文件夹中执行特定的操作,python 代码从另一个文件夹运行,所以当我启动文件时,它从 python 脚本的工作目录,但它必须从自己的目录开始。我尝试使用 os.chdir(path) 更改工作目录,但失败了,该文件仍未在其自己的文件夹中运行。我想也许有一个像快捷方式的“开始于”行这样的命令。我到处搜索,但没有成功。我想到的唯一解决方案是创建快捷方式并添加“开始于”行,然后启动快捷方式,但这是非常不切实际的。

最佳答案

对于初学者,不要使用 os.startfile。使用 subprocess ,然后您可以使用 Popencwd 参数。

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

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

关于Python更改用startfile打开的exe文件的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6487544/

相关文章:

python - 如何访问列表中存在的字典键值?

c++ - 可能的 : Program executing Qt3 and Qt4 code?

c++ - 钩子(Hook)函数后调用原函数

windows - Winsock Kernel的 "WskSendTo"函数在Win7 SP1上导致 "DRIVER_IRQL_NOT_LESS_OR_EQUAL"BSOD

linux - 为什么所有环境变量都加载到进程的堆栈中?

windows - DLL是在内核态还是用户态加载的?

python - 代码在 Python shell 中有效,但在命令提示符下无效

python - 按字母顺序查找最长的子串

python - 将重定向 URL 的一部分复制为文本

python - 将段落分割成句子