L'appel d'un script Python en C++ et utilisant sa sortie

Je veux appeler un script python en C++ et que vous souhaitez utiliser la sortie .fichier csv généré par ce nouveau script en C++. J'ai essayé ceci dans main():

std::string filename = "/home/abc/xyz/script.py";
std::string command = "python ";
command += filename;
system(command.c_str());

Ce n'appeler et exécuter le script python.

La print commandes dans les Python sont en cours d'exécution. Les choses sont en train d'être imprimé sur l'écran lorsque le script est appelé. So far So good. Cependant, il n'est pas de la création de l' .fichier csv (partie de la même script).

Exemple: j'ai eu un training.csv fichier avec 100 entrées. J'ai appelé le script Python, avec peu de modifications pour le script, de sorte que le training.csv fichier maintenant ne devrait contenir que 50 entrées au lieu de 100. Il est remplacé. Toutefois, une telle chose se produise. Reste des commandes dans le script (print, etc) fonctionnent parfaitement.

La training.csv fichier doit être lu avec C++ normalement à l'aide de fstream et getline.

Aucune idée de comment le faire (à l'aide de Linux)?

Vous voudrez peut-être chercher des façons d'intégrer (et l'extension) python au lieu de traiter avec les invocations de l'interpréteur python via le shell.
Dépend de la plate-forme. Windows et Unix ont des approches différentes. Qui êtes-vous? Et il n'y a rien Python particulière à ce sujet.
Cela devrait vous aider: stackoverflow.com/questions/9405985/...
Aussi, pour la plus courte exemple stackoverflow.com/a/478960/1715716
Si le script python crée un fichier csv. Ensuite, vous n'avez pas besoin de rediriger la sortie des scripts. Il suffit de lancer, et d'ouvrir les fichiers créés à l'aide de la norme api C++.

OriginalL'auteur learner | 2013-06-06