赞
踩
方式一:适用于python脚本中不包含第三方模块的情况
C#代码
- using IronPython.Hosting;
- using Microsoft.Scripting.Hosting;
- using System;
-
- namespace CSharpCallPython
- {
- class Program
- {
- static void Main(string[] args)
- {
- ScriptEngine pyEngine = Python.CreateEngine();//创建Python解释器对象
- dynamic py = pyEngine.ExecuteFile(@"test.py");//读取脚本文件
- int[] array = new int[9] { 9, 3, 5, 7, 2, 1, 3, 6, 8 };
- string reStr = py.main(array);//调用脚本文件中对应的函数
- Console.WriteLine(reStr);
-
- Console.ReadKey();
- }
- }
- }
-

Python代码
- def main(arr):
- try:
- arr = set(arr)
- arr = sorted(arr)
- arr = arr[0:]
- return str(arr)
- except Exception as err:
- return str(err)
-
方式二:适用于python脚本中包含第三方模块的情况
C#代码
- using System;
- using System.Collections;
- using System.Diagnostics;
-
- namespace Test
- {
- class Program
- {
- static void Main(string[] args)
- {
- Process p = new Process();
- string path = "reset_ipc.py";//待处理python文件的路径,本例中放在debug文件夹下
- string sArguments = path;
- ArrayList arrayList = new ArrayList();
- arrayList.Add("com4");
- arrayList.Add(57600);
- arrayList.Add("password");
- foreach (var param in arrayList)//添加参数
- {
- sArguments += " " + sigstr;
- }
-
- p.StartInfo.FileName = @"D:\Python2\python.exe"; //python2.7的安装路径
- p.StartInfo.Arguments = sArguments;//python命令的参数
- p.StartInfo.UseShellExecute = false;
- p.StartInfo.RedirectStandardOutput = true;
- p.StartInfo.RedirectStandardInput = true;
- p.StartInfo.RedirectStandardError = true;
- p.StartInfo.CreateNoWindow = true;
- p.Start();//启动进程
-
- Console.WriteLine("执行完毕!");
-
- Console.ReadKey();
- }
- }
- }
-

- # -*- coding: UTF-8 -*-
- import serial
- import time
-
- def resetIPC(com, baudrate, password, timeout=0.5):
- ser=serial.Serial(com, baudrate, timeout=timeout)
- flag=True
- try:
- ser.close()
- ser.open()
- ser.write("\n".encode("utf-8"))
- time.sleep(1)
- ser.write("root\n".encode("utf-8"))
- time.sleep(1)
- passwordStr="%s\n" % password
- ser.write(passwordStr.encode("utf-8"))
- time.sleep(1)
- ser.write("killall -9 xxx\n".encode("utf-8"))
- time.sleep(1)
- ser.write("rm /etc/xxx/xxx_user.*\n".encode("utf-8"))
- time.sleep(1)
- ser.write("reboot\n".encode("utf-8"))
- time.sleep(1)
- except Exception:
- flag=False
- finally:
- ser.close()
- return flag
-
- resetIPC(sys.argv[1], sys.argv[2], sys.argv[3])
-

调用包含第三方模块的python脚本时,需要在Python安装目录且包含第三方模块文件夹;打包时可以拷贝该文件到程序运行目录,直接打包进去
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。