使用java编译python代码
我正在尝试使用Java编译Python代码。Python代码打开一个csv文件并将数据保存到另一个csv文件中使用java编译python代码,java,python,Java,Python,我正在尝试使用Java编译Python代码。Python代码打开一个csv文件并将数据保存到另一个csv文件中 import os from stat import* import csv data = [] with open('Example.csv') as f: reader = csv.reader(f, delimiter = ',') for row in reader: data.a
import os
from stat import*
import csv
data = []
with open('Example.csv') as f:
reader = csv.reader(f, delimiter = ',')
for row in reader:
data.append(row)
f = open("Clearprint.csv","w")
f.truncate()
f.close()
with open('Clearprint.csv','w',newline='') as fp:
a = csv.writer(fp,delimiter = ',')
a.writerows(data)
Python代码正常工作,但当我试图通过Java编译它时,什么也没发生
class test1{
public static void main(String[] args) throws IOException {
String pythonScriptPath = "C:/Masters/Python/helloPython.py";
String[] cmd = new String[2];
cmd[0] = "C:/Python33/python.exe";
cmd[1] = pythonScriptPath;
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec(cmd);
BufferedReader bfr = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
while((line = bfr.readLine()) != null) {
System.out.println(line);
}
}
}
在Python代码只有一个print命令的情况下,一切正常,因此可能与我使用csv有关。注意,我不需要从Python返回Java或发送到Python。我只想让Java启动Python代码,让Python完成其他一切
谢谢您的术语在这里有点错误,这使问题变得混乱。您正试图通过从java调用python解释器来运行python脚本 可能python子进程抛出了一些错误(比如找不到文件),而java进程没有告诉您该错误是什么。这里的解决方案是实际捕获java中的错误,并将其打印出来:
BufferedReader err = new BufferedReader(new InputStreamReader(pr.getErrorStream()));
String line = "";
while((line = err.readLine()) != null) {
System.err.println(line);
}
也就是说,我同意在jython中这样做可能会更好——或者只是用java重新编写python部分——我知道,java中的IO和字符串处理是一件痛苦的事情,但没有多语言项目那么痛苦:)“我正试图用java编译python代码”——为什么?这两种程序都很简单,为什么不坚持使用一种语言呢?或者,看看。我正在用使用Java的Anylogic编写一个模拟。我的Anylogic代码导入一个由一组作业组成的csv文件。我已经用Python编写了这些作业的操作代码,我更愿意通过Java从Anylogic运行Python代码,而不是用Java重写所有Python代码。