代码相当于调用一个cmd命令行执行代码,args代表执行的命令,第一个参数为python所在的位置,第二个为python代码路径,如果有第三第四个参数是代表传入给python代码的参数。
Process proc;
try {
String[] args1=new String[]{"E:\\python文件\\python.exe","F:/Python/untitled/KNN.py","1"};
proc = Runtime.getRuntime().exec(args1);// 执行py文件
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
// //string转list,然后可读取
// List<String> nameCheckRuleList = JSON.parseArray(line, String.class);
// System.out.println(nameCheckRuleList);
// a=nameCheckRuleList.get(0);
}
in.close();
proc.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
在python代码中利用如下代码调用
import sys
item=sys.argv[i]
i从1开始取值,代表传入的第几个参数
java读取的值是Python 代码中Print出来的结果,如果要对结果进行后续利用,可print一个数组或者字典,将string转为list或字典进行后续操作