C#调用Python程序有多种方式,本文主要介绍了4种方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
说明
C# 调用 Python 程序有多种方式,本篇用的是第 4 种:
- nuget的ironPython;
- 用 c/c++ 调用python,再封装成库文件,c# 调用;
- c# 命令行调用.py文件执行;
- python 程序制作成 .exe 可执行文件,c# 使用命令行进行传参取返回值。
1. Python 脚本
先建个测试脚本 d://Test/EchoHi.py 代码如下:
import sys
def EchoHi(a):
return ("Hello, " + a)
if __name__ == "__main__":
# print('参数列表:', str(sys.argv))
print(EchoHi(sys.argv[1]))
测试一哈
D:\Test>python EchoHi.py Mr.Tree
Hello, Mr.Tree
2. 打包成Windows可执行文件
首先安装给python打包的python包
D:\Test>pip install pyinstaller
执行打包命令,看输出
D:\Test>pyinstaller -F EchoHi.py
21185 INFO: Writing RT_ICON 7 resource with 1128 bytes
21192 INFO: Updating manifest in D:\Test\build\EchoHi\run.exe.0u78g5s3
21444 INFO: Updating resource type 24 name 1 language 0
21447 INFO: Appending archive to EXE D:\Test\dist\EchoHi.exe
21634 INFO: Building EXE from EXE-00.toc completed successfully.
这里有生成的可执行文件的位置,进入可执行文件的目录测试
D:\Test\dist>EchoHi.exe Mr.Tree
Hello, Mr.Tree
3. C# 程序
CallCmd.cs 代码如下
using System;
class Test
{
public static void Main(String[] args)
{
string cmdpath = "d://Test/dist/EchoHi.exe";
string arguments = "Mr.Cmd";
Console.WriteLine(CallCMD(cmdpath, arguments));
}
public static string CallCMD(string _command, string _arguments){
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(_command, _arguments);
psi.CreateNoWindow = true;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
return(p.StandardOutput.ReadToEnd());
}
}
特别需要注意的是:
命令参数是 arguments 内不能有多余空格,因为每个空格都会被识别为分割;
还要注意加一层转义,假执行命令为 EchoHi.exe Mr.\"Tree\" (Tree加了双引号)时,定义就应该为
string arguments = "\\\"Mr.Cmd\\\"";
此后编译运行即可。
4. 参考
[1] https://blog.csdn.net/qq_42063091/article/details/82418630
到此这篇关于C#调用Python程序传参数获得返回值的文章就介绍到这了,更多相关C#调用Python获得返回值内容请搜索得得之家以前的文章希望大家以后多多支持得得之家!
本文标题为:C#调用Python程序传参数获得返回值
基础教程推荐
- C# List实现行转列的通用方案 2022-11-02
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- C#类和结构详解 2023-05-30
- C#控制台实现飞行棋小游戏 2023-04-22
- C# windows语音识别与朗读实例 2023-04-27
- C# 调用WebService的方法 2023-03-09
- 一个读写csv文件的C#类 2022-11-06
- winform把Office转成PDF文件 2023-06-14
- unity实现动态排行榜 2023-04-27
- ZooKeeper的安装及部署教程 2023-01-22