本文共 1383 字,大约阅读时间需要 4 分钟。
[本文出自天外归云的博客园]
在网上查了很多方法都不成功,在google上搜到一篇,做了一些小修改,能够处理中文输出。提取一个运行python脚本的Java工具类如下:
package com.autox.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;public class RunPython { public static ArrayListrun_py(String script) { String s = null; ArrayList result = new ArrayList (); ArrayList error = new ArrayList (); try { Process p = Runtime.getRuntime().exec(script); BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream(), "GBK")); BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream())); while ((s = stdInput.readLine()) != null) { result.add(s); } while ((s = stdError.readLine()) != null) { error.add(s); } if (error != null) { System.out.println(error); } } catch (IOException e) { e.printStackTrace(); } return result; }}
Java中调用方法如下:
ArrayListresult = RunPython.run_py("python script_path args");for (String item : result) { System.out.println(item);}
其中script_path需替换为Python脚本路径,args替换为向脚本传递的参数。
转载地址:http://paqyx.baihongyu.com/