我想从 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)