【问题标题】:Running a .exe program using Python使用 Python 运行 .exe 程序
【发布时间】:2020-06-10 20:00:38
【问题描述】:

小背景: Code::Blocks 是一个带有 C++ 集成编译器的 IDE。创建 C++ 项目时,它会创建一个 .exe 文件,以便您可以运行该项目。

所以现在我想使用 Python 脚本(使用 VSCode)运行该可执行文件。我尝试了subprocess.call()、subprocess.run()和subprocess.Popen(),它们都启动了后台进程,但它没有编译,所以它只是在任务管理器上继续运行。如果我手动运行它(通过双击它)然后它会打开,它会关闭并且我在输出文件中得到正确答案。

这是问题“kino”的 C++ 项目文件夹:

这是一张带有任务管理器上 .exe 的照片:

这是我的 Python 代码:

process = subprocess.run([r'C:\Users\Documents\kino\kino.exe'], shell = True)

我想说我也尝试过 subprocess.kill(),但它应该自行终止(我没有得到答案)。

编辑: Here is a video describing the problem

【问题讨论】:

  • 运行 subprocess.call([r'C:\Users\Documents\kino\kino.exe']) 会发生什么?我认为这将是正确的选择
  • kino.exe 有什么作用?它可以等待标准输入的输入吗?也许它的工作方式会有所不同,具体取决于它的标准输入是否连接到控制台?
  • 当我运行 subprocess.call() 时也会发生同样的事情,但程序会冻结,直到我关闭可执行文件。
  • 我有一个 .in 文件(用于输入)、一个 .out 文件(用于输出)、main.cpp 文件(包含 c++ 代码)和可执行文件。可执行文件从 .in 文件获取输入,使用 .cpp 文件运行它并在 .out 文件上打印答案。我应该发布一个关于它是如何工作的小片段吗?

标签: python executable


【解决方案1】:

或者你可以用子进程来做

import subprocess subprocess.call(["C:\\Users\\Documents\\kino\\kino.exe"])

【讨论】:

    【解决方案2】:

    您可以使用 msdos 命令执行程序,而不是运行子进程:

    import os
    os.system('C:\Users\Documents\kino\kino.exe')
    

    唯一的问题是这会阻塞你的 python 脚本,直到 .exe 程序停止运行。

    【讨论】:

    • 同样的事情发生了......程序执行但它在后台运行并且没有停止。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    相关资源
    最近更新 更多