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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python更改使用startfile打开的exe的工作目录相关的知识,希望对你有一定的参考价值。

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

答案

首先不要使用os.startfile。使用subprocess,然后你可以使用cwdPopen参数。

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

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

以上是关于Python更改使用startfile打开的exe的工作目录的主要内容,如果未能解决你的问题,请参考以下文章

Python用关联程序打开文件

如何使用 Rust 使用默认程序启动任何文件(如 Python 的 `os.startfile()`)

python写脚本打开应用程序

[Python] Mac OS 下 os.startfile 的替代方案

如何在 Python 中打开任何程序?

Python 调用让系统自动调用默认程序打开文件?