C#调用带参数的python脚本
问题描述:使用C#调用下面的带参数的用python写的方法,并且想要获取返回值。
def Quadratic_Equations(a,b,c):
D=b**2-4*a*c
ans=[]
ans.append((-b+math.sqrt(D))/(2*a))
ans.append((-b-math.sqrt(D))/(2*a))
return ans
C#代码如下:
class Program
{
static void Main(string[] args)
{
string name = "CallPythonExam.py";
List<string> param = new List<string>() { "3", "5", "1" };
RunPythonScript(name, param);
} static void RunPythonScript(string name, List<string> args)
{
Process p = new Process();
// .py文件的绝对路径
string path = @"D:\PythonPrograms\VelocityProfile\VelocityProfile\" + name;
string arguments = path;
// 添加参数
foreach (var item in args)
arguments += " " + item;
// python安装路径
p.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\python.exe"; // 下面这些是我直接从网上抄下来的.......
p.StartInfo.Arguments = arguments;
// 不启用shell启动进程
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
// 不创建新窗口
p.StartInfo.CreateNoWindow = true;
p.Start();
StreamReader sr = p.StandardOutput;
while (!sr.EndOfStream)
Console.WriteLine(sr.ReadLine());
Console.ReadLine();
p.WaitForExit();
}
}
python代码如下:
import math
import sys def Quadratic_Equations(stra,strb,strc):
a=float(stra)
b=float(strb)
c=float(strc)
D=b**2-4*a*c
ans=[]
ans.append((-b+math.sqrt(D))/(2*a))
ans.append((-b-math.sqrt(D))/(2*a))
print(ans[0])
print(ans[1])
#return str(ans[0]) Quadratic_Equations(sys.argv[1],sys.argv[2],sys.argv[3])
这样就可以在屏幕上输出方程的解。
C#调用带参数的python脚本的更多相关文章
- Java程序调用带参数的shell脚本返回值
Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量(\(#,\)@,$0,$1,\(2)的含义解释 变量说明: - \)$ Shell本身的PID(ProcessI ...
- Python与Hack之window下运行带参数的Python脚本,实现一个简单的端口扫描器
1.前提是:windows已经配置好Python的环境变量: 2.进入cmd命令行模式: **输入python命令,检测是否环境配置好:显示这样说明配置环境变量没问题 **用cd命令进入Python脚 ...
- 运行带参数的python脚本
问题描述: 要执行python脚本,有哪几种方法. 特别是看书的时候,书上只讲解了如何在linux下运行,windows根本就没有那些命令,该怎么办呢? 方法1:python自带的IDLE编辑器 Ru ...
- C#线程调用带参数的方法
在 .NET Framework 2.0 版中,要实现线程调用带参数的方法有两种办法.第一种:使用ParameterizedThreadStart.调用 System.Threading.Thread ...
- addEventListener调用带参数函数
当传递参数值时,使用"匿名函数"调用带参数的函数: <body> <button id="btn">click me</butto ...
- c# 多线程 调用带参数函数
线程操作主要用到Thread类,他是定义在System.Threading.dll下.使用时需要添加这一个引用.该类提供给我们四个重载的构造函数(以下引自msdn). Thread (Pa ...
- SQL——存储过程实例 调用带参数的过程(成绩输出)
create or replace procedure test_score(input in number,output out char) is begin then begin output : ...
- bat调用带参数存储过程
@bat调用sql文件 sqlplus user/pass@orcl @F:\factory.sql @将所有的存储过程封装在sql中 factory.sql:exec pro_factory(&am ...
- crontab执行带参数的php脚本,并取得参数[转]
现在越来越喜欢用linux了,程序当中也去掉了很多触发性判断,改用了借用linux的crontab的特性来进行,这样程序效率确实是高了很多. 比如我们每月1号清空月点击,比如每天凌晨统计上一天的访问报 ...
随机推荐
- Redis数据库各种数据结构的内部实现。
Redis数据库是一种非关系型数据库,基于key/value对,运行时加载到内存,对value支持虚拟内存, 支持多种数据结构,支持持久化,以性能著称,可用于存储,缓存,消息队列等场景.主要介绍下Re ...
- Python webargs 模块
一.安装 python3 -m pip install webargs 文档 二.基础特性 # encoding=utf-8 from flask import Flask from webargs ...
- vue学习9-更新视图
<!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta ht ...
- java-包概述
1 package face_package; 2 3 import face_packagedemo.DemoA; 4 5 /* 包(package) 6 * 1,对类文件进行分类管理. 7 * 2 ...
- AOP-基本概念
AOP(概念) 1,什么是AOP (1)面向切面(方面)编程 :利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率. (2)通 ...
- Vue之性能调优
打包优化 1. 屏蔽 sourceMap sourceMap作用:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错. 在config目录的index.js ...
- ==和equeals区别以及使用场景
定义 ==:基本数据类型比较的是值或地址,引用数据类型比较的是地址. equals:在不重写的情况下,和==没有任何区别,重写,可以自定义比较规则,一般重写之后都让其比较值. Object类中的equ ...
- 腾讯QQ是用什么语言写的?
腾讯QQ的开发分客户端软件和服务器端软件两部分. 客户端采用 Microsoft Visual C++开发: 服务器端软件采用Linux gcc开发 : 数据库采用MySql 数据库. 腾讯QQ ...
- Docker容器启动失败 Failed to start Docker Application Container Engine
1.在k8s mster节点执行 1.kubectl get nodes 发现node节点没起来 [root@guanbin-k8s-master ~]# kubectl get nodes NAME ...
- bom-页面加载事件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...