ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-07-16 00:58:12  阅读:241  来源: 互联网

标签:python user-interface c-3 integrate


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

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

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

也许可以使用pOpen()方法将字符串传递给c app? (但我无法弄清楚……)

注意:我是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,user-interface,c-3,integrate
来源: https://codeday.me/bug/20190715/1472871.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有