真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C#調(diào)用python腳本的方法步驟是怎樣的

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)C#調(diào)用python腳本的方法步驟是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、湟中ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的湟中網(wǎng)站制作公司

因項(xiàng)目需要,需要使用C#控制臺程序執(zhí)行python腳本,查詢各種資料后可以成功調(diào)用了,記錄一下,以備后面遺忘。

只嘗試了兩種調(diào)用方式,第一種只適用于python腳本中不包含第三方模塊的情況,第二種針對的是python腳本中包含第三方模塊的情況。不管哪種方式,首先都需要安裝IronPython。我是通過vs2017的工具->NuGet包管理器->管理解決方案的NuGet包,搜索IronPython包安裝,也可以在官網(wǎng)下載安裝包自行安裝后添加引用即可。

方式一:適用于python腳本中不包含第三方模塊的情況

C#代碼 

using IronPython.Hosting;using Microsoft.Scripting.Hosting;using System;namespace CSharpCallPython{  class Program  {    static void Main(string[] args)    {      ScriptEngine pyEngine = Python.CreateEngine();//創(chuàng)建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);//調(diào)用腳本文件中對應(yīng)的函數(shù)      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)

結(jié)果

方式二:適用于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)//添加參數(shù)      {        sArguments += " " + sigstr;      }      p.StartInfo.FileName = @"D:\Python2\python.exe"; //python2.7的安裝路徑      p.StartInfo.Arguments = sArguments;//python命令的參數(shù)      p.StartInfo.UseShellExecute = false;      p.StartInfo.RedirectStandardOutput = true;      p.StartInfo.RedirectStandardInput = true;      p.StartInfo.RedirectStandardError = true;      p.StartInfo.CreateNoWindow = true;      p.Start();//啟動進(jìn)程      Console.WriteLine("執(zhí)行完畢!");      Console.ReadKey();    }  }}

python腳本

# -*- coding: UTF-8 -*-import serialimport timedef 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 flagresetIPC(sys.argv[1], sys.argv[2], sys.argv[3])

上面的python腳本實(shí)現(xiàn)的是重啟IPC設(shè)備,測試功能成功。

調(diào)用包含第三方模塊的python腳本時,嘗試過使用path.append()方式,調(diào)試有各種問題,最終放棄了,沒有研究。

上述就是小編為大家分享的C#調(diào)用python腳本的方法步驟是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


新聞名稱:C#調(diào)用python腳本的方法步驟是怎樣的
URL分享:http://weahome.cn/article/ishjsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部