【发布时间】:2020-06-10 20:00:38
【问题描述】:
小背景: Code::Blocks 是一个带有 C++ 集成编译器的 IDE。创建 C++ 项目时,它会创建一个 .exe 文件,以便您可以运行该项目。
所以现在我想使用 Python 脚本(使用 VSCode)运行该可执行文件。我尝试了subprocess.call()、subprocess.run()和subprocess.Popen(),它们都启动了后台进程,但它没有编译,所以它只是在任务管理器上继续运行。如果我手动运行它(通过双击它)然后它会打开,它会关闭并且我在输出文件中得到正确答案。
这是我的 Python 代码:
process = subprocess.run([r'C:\Users\Documents\kino\kino.exe'], shell = True)
我想说我也尝试过 subprocess.kill(),但它应该自行终止(我没有得到答案)。
【问题讨论】:
-
运行 subprocess.call([r'C:\Users\Documents\kino\kino.exe']) 会发生什么?我认为这将是正确的选择
-
kino.exe 有什么作用?它可以等待标准输入的输入吗?也许它的工作方式会有所不同,具体取决于它的标准输入是否连接到控制台?
-
当我运行 subprocess.call() 时也会发生同样的事情,但程序会冻结,直到我关闭可执行文件。
-
我有一个 .in 文件(用于输入)、一个 .out 文件(用于输出)、main.cpp 文件(包含 c++ 代码)和可执行文件。可执行文件从 .in 文件获取输入,使用 .cpp 文件运行它并在 .out 文件上打印答案。我应该发布一个关于它是如何工作的小片段吗?
标签: python executable