How to continue the script while using the system()- command?

5 visualizaciones (últimos 30 días)
Sophie96
Sophie96 el 6 de Mayo de 2022
Comentada: Riccardo Scorretti el 6 de Mayo de 2022
I am starting a python-script out of Matlab using the system()-command.
I would to check in a while loop if the script is still running and do something else while running. If it is not running anymore, I would like to break the while-loop and continue my Matlab script. However, it seems that the while loop starts when I already closed the python-script and not while the script is still running:
checkpython = 'pgrep python';
system('unset LD_LIBRARY_PATH;python3 MyPythonScript.py')
[status1,~] = system(checkpython);
while status1==0
[status,~] = system(checkpython);
%%% Doing something else here %%%
if status == 1
disp('Python closed')
break
end
end
How could I check while the python script is running if it is still running and do something else in that while-loop?
Thanks for your advice!
Best, Sophie
  1 comentario
Riccardo Scorretti
Riccardo Scorretti el 6 de Mayo de 2022
In order to continue the execution of MATLAB while running the pyhton script, you could add an ampersand (&) to the end of the command.
As for checking if your python script terminated the execution, I cannot figure out any elegant solution. The "quick and dirty" method could be to make your script open a dummy file at the beginning, and delete it when he finishes; so you can check if the script is still running by checking the existance of that particular file.

Iniciar sesión para comentar.

Respuestas (1)

Sophie96
Sophie96 el 6 de Mayo de 2022
Perfect, the ampersand was the solution I was looking for. Thanks!

Categorías

Más información sobre Call Python from MATLAB en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by