使用python执行程序

使用python执行程序,python,double-click,Python,Double Click,我有一个叫做MicroSIP的程序。当我双击它时,它会打开并根据.ini文件注册到远程服务器。到目前为止一切都很好。 我有一个python脚本,我想在其中关闭MicroSIP.exe进程并再次运行它。我可以这样做,但由于某种原因,当它再次打开时,它好像不像双击时那样使用.ini文件 有人知道为什么会这样吗 这是我关闭进程并再次运行它的代码: os.system("TASKKILL /F /IM MicroSIP.exe") os.system('"C:\Users\Tamir\Downloads

我有一个叫做MicroSIP的程序。当我双击它时,它会打开并根据.ini文件注册到远程服务器。到目前为止一切都很好。 我有一个python脚本,我想在其中关闭MicroSIP.exe进程并再次运行它。我可以这样做,但由于某种原因,当它再次打开时,它好像不像双击时那样使用.ini文件

有人知道为什么会这样吗

这是我关闭进程并再次运行它的代码:

os.system("TASKKILL /F /IM MicroSIP.exe")
os.system('"C:\Users\Tamir\Downloads\MicroSIP-Lite-3.10.5\MicroSIP.exe"')

这实际上是工作目录问题。在Python脚本中,确保包含exe的目录成为主目录,然后执行exe。

您可以通过以下方式检查脚本工作目录:

import os
print os.getcwd()
确保它在与.exe应用程序不同的目录下工作

一个非常简单的解决方法是使用绝对路径:

os.system("TASKKILL /F /IM MicroSIP.exe")
os.chdir('"C:\\Users\\Tamir\\Downloads\\MicroSIP-Lite-3.10.5\\"')    
os.system('"C:\\Users\\Tamir\\Downloads\\MicroSIP-Lite-3.10.5\\MicroSIP.exe"')

为了更好地理解,我建议您阅读

,这取决于您实际如何再次“打开”它。请显示您的代码。@J0HN我编辑了这个问题。您能解释一下您的意思吗?我不明白Microsip显然在工作目录中寻找它的INI文件。这意味着您的python进程需要在调用os.system执行microsip之前将cd刻录到该目录。为此使用os.chdir()。