Python更改使用startfile打开的exe的工作目录
在 python 中,我使用 os.startfile 命令启动一个 Windows 可执行文件,该可执行文件在其自己的文件夹中执行特定的操作,python 代码是从另一个文件夹运行的,因此当我启动该文件时,它会在 python 脚本的工作目录中启动,但它必须从自己的目录开始。我尝试使用 os.chdir(path) 更改工作目录,但失败了,文件仍然没有在它自己的文件夹中运行。我想也许有一个像快捷方式的“开始”行这样的命令。我已经到处寻找,但没有成功。我想到的唯一解决方案是创建一个快捷方式并添加“开始于”行,然后启动快捷方式,但这是非常不切实际的。
In python i'm using the os.startfile command to start a windows executable that does especific stuff in its own folder, the python code is running from another folder, so when I start the file, it starts in the python script's working directory, but it has to start in its own directory. I've tried to use os.chdir(path) to change the working directory, but it fails, the file still not runs in it's own folder. I thought maybe there is a command like shortcut's "Start in" line. I've searched everywere, but not success. The only solution comes to my mind is to create a shortcut and add the "start in" line, then launch the shortcut, but that is very impractical.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,不要使用 os.startfile。使用
subprocess
,然后可以使用cwd<
Popen
的 /code> 参数。如果您确实想使用
ShellExecute< /code>
,那么最好的方法是跳过
os.startfile
并直接使用ctypes
调用它(或者看看它是否在pywin32中某处)。Don't use
os.startfile
, for starters. Usesubprocess
, you can then usecwd
argument ofPopen
.If you really want to use
ShellExecute
, then the best way will be to skipos.startfile
and call it directly withctypes
(or look whether it's in pywin32 somewhere).