Mercurial > hg > camir-aes2014
view core/tools/python.m @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line source
function [result status] = python(varargin) %python Execute python command and return the result. % python(pythonFILE) calls python script specified by the file pythonFILE % using appropriate python executable. % % python(pythonFILE,ARG1,ARG2,...) passes the arguments ARG1,ARG2,... % to the python script file pythonFILE, and calls it by using appropriate % python executable. % % RESULT=python(...) outputs the result of attempted python call. If the % exit status of python is not zero, an error will be returned. % % [RESULT,STATUS] = python(...) outputs the result of the python call, and % also saves its exit status into variable STATUS. % % See also SYSTEM, JAVA, MEX. % Copyright 1990-2007 The MathWorks, Inc. % $Revision: 1.1.4.8 $ cmdString = ''; % Add input to arguments to operating system command to be executed. % (If an argument refers to a file on the MATLAB path, use full file path.) for i = 1:nargin thisArg = varargin{i}; if isempty(thisArg) || ~ischar(thisArg) error('MATLAB:perl:InputsMustBeStrings', 'All input arguments must be valid strings.'); end if i==1 if exist(thisArg, 'file')==2 % This is a valid file on the MATLAB path if isempty(dir(thisArg)) % Not complete file specification % - file is not in current directory % - OR filename specified without extension % ==> get full file path thisArg = which(thisArg); end else % First input argument is pythonFile - it must be a valid file error('MATLAB:perl:FileNotFound', 'Unable to find python file: %s', thisArg); end end % Wrap thisArg in double quotes if it contains spaces if any(thisArg == ' ') thisArg = ['"', thisArg, '"']; end % Add argument to command string cmdString = [cmdString, ' ', thisArg]; end % Execute python script errTxtNoPerl = 'Unable to find python executable.'; if isempty(cmdString) error('MATLAB:perl:NoPerlCommand', 'No python command specified'); elseif ispc % PC perlCmd = []; % fullfile('C:\Program Files (x86)\Python3x'); cmdString = ['python' cmdString]; perlCmd = ['set PATH=',perlCmd, ';%PATH%&' cmdString]; [status, result] = dos(perlCmd); else [status ignore] = unix('which python'); %#ok if (status == 0) cmdString = ['python', cmdString]; [status, result] = unix(cmdString); else error('MATLAB:python:NoExecutable', errTxtNoPython); end end % Check for errors in shell command if nargout < 2 && status~=0 error('MATLAB:perl:ExecutionError', ... 'System error: %sCommand executed: %s', result, cmdString); end