C#调用Python
Posted zhuanjiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#调用Python相关的知识,希望对你有一定的参考价值。
python文件中未引入其他包、模块
以下方法不适用于pyhton 文件有第三方包、模块,有第三方包,模块的实现方法,请戳这里→https://www.cnblogs.com/zhuanjiao/p/12007176.html
一、安装IronPython包,使用的是2.7.5版本
二、源码
2.1 python 源码,实现一个快速排序功能
def quickSort(lyst): quickSortHelper(lyst, 0, len(lyst) - 1) return lyst def quickSortHelper(lyst, left, right): if left < right: pivotLocation = partition(lyst, left, right) quickSortHelper(lyst, left, pivotLocation - 1) quickSortHelper(lyst, pivotLocation + 1, right) def swap(lst, i, j): temp = lst[i] lst[i] = lst[j] lst[j] = temp def partition(lyst, left, right): middle = (left + right) // 2 pivot = lyst[middle] lyst[middle] = lyst[right] lyst[right] = pivot boundary = left for index in range(left, right): if lyst[index] < pivot: swap(lyst, index, boundary) boundary += 1 swap(lyst, right, boundary) return boundary
2.2 C#源码
using IronPython.Hosting; using Microsoft.Scripting.Hosting; namespace TestClass { public class CSharpCallPython { public int[] Sort(int[] arr) { string path = @"D:\\PyCharm\\source\\Study\\test.py"; ScriptRuntime pyRuntime = Python.CreateRuntime(); dynamic py = pyRuntime.UseFile(path); return py.quickSort(arr); } } }
var arr = new CSharpCallPython().Sort(new int[] { 45, 12, 87, 2, 204, 3 }); foreach (var item in arr) { Console.WriteLine(item); } Console.ReadLine();
执行结果:
以上是关于C#调用Python的主要内容,如果未能解决你的问题,请参考以下文章
此 Canon SDK C++ 代码片段的等效 C# 代码是啥?