有没有一种方法可以用java中的click模块运行python文件

ppcbkaq5  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(248)

新年快乐,祝大家身体健康,
我正在使用python为java创建一种股票api。在python中有一个名为“yfinance”的模块,它返回股票的历史数据。但是,我想用java进行计算和通用编码,所以我用python制作了一个文件,使用click模块生成一个函数,用我的历史数据创建一个excel(必须是excel)。

import yfinance as yf
import click
from pandas_datareader import data as pdr

yf.pdr_override()

@click.command()
@click.argument("tkr")
@click.argument("startdate")
@click.argument("enddate")
@click.argument("index")
def extract(tkr, startdate, enddate, index):
    data = pdr.get_data_yahoo(tkr, start=startdate, end=enddate)
    if(index != "None"):
        data = data[index]
    data.to_excel('C:\\Users\\lbvor\\IdeaProjects\\Stock\\src\\data.xlsx')
extract()

在java中,我有一个文件可以运行这个程序,并在目录中创建一个excel文件。
(所有内容都在同一目录中)

import java.io.IOException;
import java.io.*;

public class StockManager {
    public void read(String ticker, String startDate, String endDate, String index) throws IOException, InterruptedException {
        String command = "python DataReader.py " + ticker + " " + startDate + " " + endDate + " " + index;
        System.out.println("Running command : " + command);
        Process process = Runtime.getRuntime().exec(command);
    }

}

样本输出:
运行命令:python datareader.py tsla 2019-12-24 2020-12-24 none
但是当我运行这个
public static void main(字符串[]args)
它在运行“command”时打印,但不创建文件。
但是,如果我运行这个文件,在cmd中使用它正在使用的同一个命令,它就会工作。
我正在使用intellij ide
发生了什么事?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题