📜  从 java python 接收输出(1)

📅  最后修改于: 2023-12-03 14:49:17.753000             🧑  作者: Mango

从 Java 和 Python 接收输出

在编程的过程中,我们经常需要从其他语言的代码中接收输出。本文将介绍如何从 Java 和 Python 中接收输出。

从 Java 中接收输出

Java 中可以使用 ProcessBuilder 类来执行外部命令,并且可以从输出流中读取结果。

以下是一个简单的 Java 程序,它使用 ProcessBuilder 类来执行 ls 命令,并从输出流中读取结果:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.List;

public class Main {
  public static void main(String[] args) throws Exception {
    ProcessBuilder builder = new ProcessBuilder("ls", "-a");
    Process process = builder.start();

    BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String line;
    while ((line = reader.readLine()) != null) {
      System.out.println(line);
    }

    process.waitFor();
  }
}

这个程序执行了 ls -a 命令,并从输出流中读取结果。每一行被读取后都会被输出到标准输出流中。

从 Python 中接收输出

Python 中可以使用 subprocess 模块来执行外部命令,并且可以从输出流中读取结果。

以下是一个简单的 Python 程序,它使用 subprocess 模块来执行 ls 命令,并从输出流中读取结果:

import subprocess

result = subprocess.run(['ls', '-a'], stdout=subprocess.PIPE)
output = result.stdout.decode('utf-8')
print(output)

这个程序执行了 ls -a 命令,并从输出流中读取结果。结果被转换为字符串后被输出到标准输出流中。

总结

从 Java 和 Python 中接收输出可以帮助我们在不同的编程语言之间协作。Java 中可以使用 ProcessBuilder 类来执行外部命令,Python 中可以使用 subprocess 模块来执行外部命令。无论是哪种方式,都需要从输出流中读取结果,并将结果转换为字符串后输出。