使用 shell 命令从 C++ 调用 Python 脚本

时间:2021-04-17 21:18:20

标签: c++ python-2.7 shell ubuntu embed

我想从 C++ 程序中调用名为 Test.py 的 Python 脚本,并使用 C++ 代码中的命令 shell 在 myoutput.txt 文件中打印输出。 我通过运行以下命令通过 ubuntu 终端运行脚本:

 $ python Test.py > myoutput.txt

并成功将结果保存在 myoutput.txt 文件中......但是当我通过 Shell 命令运行此命令时,myoutput.txt 文件中没有写入任何输出......下面是我执行命令的方式

#include <stdlib.h>
#include <iostream>
#include <stdio.h>
using namespace std;

int main() {
    std::string filename = "/home/madeeha/Test.py > myoutput.txt";
    std::string command = "python ";
    command += filename;
    system(command.c_str());
}

我的python脚本Test.py如下:

# Import model
import pandas as pd
from sklearn.linear_model import LinearRegression
import pickle

df = pd.read_csv('/home/madeeha/Final_DataSet.csv')
tf = df
final_tf = pd.DataFrame(tf)
tf = df
final_tf = pd.DataFrame(tf)
# Create features variable, x
x_train = final_tf[['LocalLoadHigh', 'LocalLoadLow', 'TransitLoadHigh',
    'TransitLoadLow','phaseTotalBlocking', 'phaseTotalLocalBlocking', 'phaseTotalTransitBlocking', 'PBlockingLocalHigh',
    'PBlockingLocalLow', 'PBlockingTransitHigh', 'PBlockingTransitLow',
    'UtilizationHigh', 'UtilizationLow']]
# Create target variable, y
y_train = final_tf['WavelengthGroup']
# Create linear regression object
lm = LinearRegression()
model = lm.fit(x_train,y_train)

#    save the model to disk
filename = 'finalized_model.sav'
pickle.dump(model, open(filename, 'wb'))
df = pd.read_csv('/home/madeeha/workspace/IBKSIM/OneRowRegressionFiles/15_s1packetscheduler0.csv')
tf = df
final_tf = pd.DataFrame(tf)
    # Create features variable, x
x_test = final_tf[['LocalLoadHigh', 'LocalLoadLow', 'TransitLoadHigh',
    'TransitLoadLow','phaseTotalBlocking', 'phaseTotalLocalBlocking', 'phaseTotalTransitBlocking', 'PBlockingLocalHigh',
    'PBlockingLocalLow', 'PBlockingTransitHigh', 'PBlockingTransitLow',
    'UtilizationHigh', 'UtilizationLow']]
    # load the model from disk
loaded_model = pickle.load(open(filename, 'rb'))
predictions = loaded_model.predict(x_test)
print(predictions)

0 个答案:

没有答案
相关问题