winfrom桌面程序调用python解释器

  Winfrom桌面程序调用python解释器执行py脚本后台执行完成具体的功能,为什么要这样处理呢?因为我现在的大部分过项目都是后台的脚本处理,界面基本的输入完成之后,将参数按照规则传入到脚本的入口,根据参数的不同执行不同的脚本流程,如果要修改某一个处理过程或者添加新的模块,不需要修改前台的任何代码,只需要在脚本中修改就可以达到需求的效果,简单、方便,风险较小,影响可控等优点。

  因此,我做了一个demo,仅供参考,不足之处,请赐教!

界面如图:

Start_exe_py的执行代码如下:

 1  private void Start_exe_Py_Click(object sender, EventArgs e)
 2         {
 3             string txtName = this.textName.Text.Trim();
 4             string CurentPath = System.Windows.Forms.Application.StartupPath;
 5             string pyExecPath = CurentPath + @"\..\3rdTools\Python27\python.exe";
 6             string pyWorkingDir = CurentPath + @"\..\";
 7             string pyFilePath = CurentPath + @"\..\UserDefinedScripts\Main.py";
 8             string pyArgv = "";
 9             pyArgv = " " + txtName;
10
11             Cursor.Current = Cursors.WaitCursor;
12             Process pro = new Process();
13
14             //不显示窗口
15             pro.StartInfo.RedirectStandardOutput = true;
16             pro.StartInfo.UseShellExecute = false;
17             pro.StartInfo.CreateNoWindow = true;
18
19             //显示窗口
20             //pro.StartInfo.RedirectStandardOutput = false;
21             //pro.StartInfo.UseShellExecute = true;
22             //pro.StartInfo.CreateNoWindow = false;
23
24             pro.StartInfo.FileName = pyExecPath;
25             pro.StartInfo.WorkingDirectory = pyWorkingDir;
26             pro.StartInfo.Arguments = pyFilePath + pyArgv;
27             pro.Start();
28
29             pro.WaitForExit();
30             Cursor.Current = Cursors.Default;
31         }

具体的目录结构方式参考:

用户自定义的脚本代码:

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # @Date    : 2016-06-30 09:10:44
 4 # @Author  : stlong
 5 # @Version : 1.0
 6
 7 import os
 8 import sys
 9
10 def main():
11     print "Hello Python!"
12     print raw_input("python input:")
13
14
15 if __name__ == ‘__main__‘:
16     print sys.argv[0]
17     print sys.argv[1]
18     main()

由于时间关系不足之处,请见谅!

时间: 2024-10-12 20:44:38

winfrom桌面程序调用python解释器的相关文章

Unix类环境调用python解释器

在Unix类环境中我们编写python脚本时总是需要调用python解释器,调用方式通常是以下两种: 1 #!/usr/bin/python 2 #!/usr/bin/env python 那么,这两种调用python解释器的方法有什么区别呢? 其实这两种写法都是对的,其中#!/usr/bin/python直接告诉操作系统执行此脚本的时间,去/usr/bin目录下找python解释器.而写成#!/usr/bin/env python的形式则是为了去适应python没有被默认安装在/usr/bin

xcode 程序配置 python 解释器嵌入

1.点击项目->Buid Phases->加号点击 添加RunScript,Shell中写为python路径.一般是/usr/bin/python 2.同样是Build Phases中,Link Binary with Libraries 中, 加号,添加python.framework 至此配置就算完成了. 3.代码中,在Py_Initialize();和Py_Finalize();之间就可以搞事情了.

002 使用 Python 解释器

2. 使用 Python 解释器 2.1. Python 解释器的调用 Python 解释器通常被安装在机器的 /usr/local/bin/python3.6 目录下,如果该目录是可用的话:用你的 Unix shell 搜索 /usr/local/bin 目录然后键入如下命令开始:[1] python3.6 Since the choice of the directory where the interpreter lives is an installation option, other

Java调用Python程序

最近,需要在应用中,需要使用Java程序去调用Python代码,主要有两种实现方式. 一.使用Jython架包 因为调用的Python代码中需要使用Json对象,开始使用jython2.5.2,发现不支持json.因此, 升级了最新的Jython2.7.0,发现可以支持.因此,要使用更多python库,建议使用更高版本的Jython包. 首先,添加Jython的Maven依赖: 其后,写了一个简单的测试程序: 其后,可以得到如下结果: 二.使用Runtime.getRuntime()执行脚本文件

python程序调用C/C++代码

这篇用来记录在些模拟Canoe生成CAN数据桢工具时遇到的问题, 生成CAN数据桢,主要分为两个关注点: 1.如何从can信号名获取到can信号的ID长度以及信号的起始位,并将信号值按照一定的规则填写进去. 2.由于FCAN进行额checksum校验和activecount的规则,这部分算法使用C/C++最好,所以设计到python程序调用C/C++代码(也就是这篇文章) 1.如何用python调用C++代码: 这个是python官方库的cytpes模块的介绍,可以关注一下“Fundamenta

C++调用Python浅析

环境 VS2005Python2.5.4 Windows XP SP3 简述 一般开发过游戏的都知道Lua和C++可以很好的结合在一起,取长补短,把Lua脚本当成类似动态链接库来使用,很好的利用了脚本开发的灵活性.而作为一门流行的通用型脚本语言python,也是可以做到的.在一个C++应用程序中,我们可以用一组插件来实现一些具有统一接口的功能,一般插件都是使用动态链接库实现,如果插件的变化比较频繁,我们可以使用Python来代替动态链接库形式的插件(堪称文本形式的动态链接库),这样可以方便地根据

Python解释器

1        Python解释器 1.1   CPython 当我们从Python官方网站下载并安装好Python 3.5后,我们就直接获得了一个官方版本的解释器:CPython.这个解释器是用C语言开发的,所以叫CPython.在命令行下运行python就是启动CPython解释器. CPython是使用最广的Python解释器.教程的所有代码也都在CPython下执行. 1.2   IPython IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交

python解释器快捷键

13. 交互式输入的编辑和历史记录 某些版本的 Python 解释器支持编辑当前的输入行和历史记录,类似于在 Korn shell 和 GNU Bash shell 中看到的功能.这是使用GNU Readline库实现的,它支持 Emacs 风格和 vi 风格的编辑.这个库有它自己的文档,在这里我不就重复了:然而,基本原理很容易解释.本章讲述的交互式编辑和历史记录功能在 Unix 版本和 Cygwin 版本中是可选的. 13.1. 行编辑 如果支持,无论解释器打印主提示符还是从属提示符,输入行一

如何在Java中调用Python代码

有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调用对方的代码”. 下面我将举一些简单的小例子,借此说明:如何在Java中调用Python代码. 看懂这篇文章只需要具备: 熟悉Java的基本语法 懂一点点Python 主要内容如下: 什么是Jython? 一个HelloPython程序 在Jvm中执行Python脚本 仅在Java中调用Python