gpt4 book ai didi

python - 将 python gui 应用程序与 c 控制台应用程序集成的最简单方法

转载 作者:太空狗 更新时间:2023-10-29 15:49:39 25 4
gpt4 key购买 nike

我有一个 c 控制台应用程序,它将 c 文件转换为 html 文件,c 文件位置作为命令行参数传递给程序。(该应用程序适用于 windows 平台)

我想做的是有一个 python gui 应用程序允许用户选择一个文件并将文件的位置传递给 c 应用程序进行处理。

我已经知道如何使用 tkinter 创建一个基本的 python gui,但我无法弄清楚或找到任何关于如何整合这两个程序的有用信息。

也许可以使用 pOpen() 方法将字符串通过管道传输到 c 应用程序? (但我不知道如何...)

注意:我是 python 的新手,所以代码示例可能会有所帮助,而不仅仅是描述,(因为我不熟悉所有 python 库等),尽管任何帮助都将不胜感激。

最佳答案

您可能需要 subprocess模块。

至少:

import subprocess
retcode = subprocess.call(["/path/to/myCprogram", "/path/to/file.c"])
if retcode == 0:
print "success!"

这将使用参数运行程序,然后返回其返回码。

请注意 subprocess.call 将阻塞直到程序完成,因此如果它不是快速运行的程序,您的整个 Tkinter GUI 将停止重绘直到它完成。

对于更高级的使用,您可能需要使用 subprocess.Popen。这将要求您轮询直到命令完成,但允许您以更少的阻塞来完成。

如果您的 C 程序将 HTML 打印到标准输出,您将需要像这样通过管道输出:

proc = subprocess.Popen(["/path/to/myCprogram", "/path/to/file.c"], 
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, err_output = proc.communicate()
# output will now contain the stdout of the program in a string

关于python - 将 python gui 应用程序与 c 控制台应用程序集成的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2082028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com