【问题标题】:execute a program using python使用python执行程序
【发布时间】:2015-12-14 07:56:35
【问题描述】:

我有一个名为 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"')

【问题讨论】:

  • 取决于你如何再次“打开”它。请出示您的代码。
  • @J0HN 我编辑了问题

标签: python double-click


【解决方案1】:

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

【讨论】:

  • 你能解释更多你的意思吗?我不明白
  • MicroSIP 显然在工作目录中寻找它的 INI 文件。这意味着在调用 os.system 执行 microsip 之前,您的 python 进程需要 cd 到该目录。为此使用 os.chdir()。
【解决方案2】:

你可以这样检查你的脚本工作目录:

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"')

要了解更多更好,建议您阅读this question

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多